]> git.decadent.org.uk Git - maypole.git/blob - ex/fancy_example/templates/custom/display_search_inputs
Beginning to a fancy example app of 2.11 features . See
[maypole.git] / ex / fancy_example / templates / custom / display_search_inputs
1 [%# 
2
3 =head1 display_search_inputs
4
5 This displays inputs for search page.  Override in individual class template
6 directories as needed. 
7
8 Vars it needs: 
9 classmetadata-- the hash of inputs keyed on column names
10 errors           -- hash of errors keyed on columns 
11 =cut
12
13 #%]
14
15 [% IF errors.FATAL; "FATAL ERROR: "; errors.FATAL; "<br>"; END %]
16
17 [%      USE this = Class(classmetadata.name);
18         SET srch_fields = classmetadata.search_columns || 
19                           classmetadata.columns; 
20         SET cgi         = classmetadata.cgi; 
21         SET delimiter = this.foreign_input_delimiter;
22         FOR field IN srch_fields;
23                 # Recursivly call this tmeplate if we have foreign field 
24         # (hash of foreign inputs should come with it) 
25                 IF (  cgi.$field.keys ); 
26                 fclass = this.related_class(request, field); 
27                         fclass_meta = this.get_classmetadata(fclass);
28                         fclass_meta.cgi = cgi.$field; 
29                         tbl   = fclass_meta.table;
30                         INCLUDE display_search_inputs
31                                 col_prefix    = col _ delimiter _ col_prefix
32                                 classmetadata = fclass_meta;
33                         NEXT;
34                 END;
35
36         NEXT IF field == 'id' OR field == classmetadata.table _ 'id';
37         SET element = cgi.$field; 
38 %]
39
40 <label>
41                 <span class="field">
42                 [% 
43                         classmetadata.colnames.$field || field | ucfirst | replace('_',' '); %]
44                 </span>
45                 [%      IF element.tag == "select";
46                                 # set the previous value 
47                                 IF cgi_params.exists(field);
48                                         set_selected(element, cgi_params.$field);
49                                 END;
50                                         
51                         END;
52             IF element.tag == "input";  # wipe out any default value
53                           old_val =  element.attr('value', '');
54                 END;
55        
56
57                 element.as_XML; 
58                 %]
59 </label>
60 [% END; %]
61         
62