]> git.decadent.org.uk Git - maypole.git/blob - examples/fancy_example/templates/custom/display_search_inputs
moved ex to examples, fix to edit template
[maypole.git] / examples / 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                 NEXT IF !cgi.$field;
24                 # Recursivly call this tmeplate if we have foreign field 
25         # (hash of foreign inputs should come with it) 
26                 IF (  cgi.$field.keys ); 
27                 fclass = this.related_class(request, field); 
28                         fclass_meta = this.get_classmetadata(fclass);
29                         fclass_meta.cgi = cgi.$field; 
30                         tbl   = fclass_meta.table;
31                         INCLUDE display_search_inputs
32                                 col_prefix    = col _ delimiter _ col_prefix
33                                 classmetadata = fclass_meta;
34                         NEXT;
35                 END;
36
37         NEXT IF field == 'id' OR field == classmetadata.table _ 'id';
38         SET element = cgi.$field; 
39 %]
40
41 <label>
42                 <span class="field">
43                 [% 
44                         classmetadata.colnames.$field || field | ucfirst | replace('_',' '); %]
45                 </span>
46                 [%      IF element.tag == "select";
47                                 # set the previous value 
48                                 IF cgi_params.exists(field);
49                                         set_selected(element, cgi_params.$field);
50                                 END;
51                                         
52                         END;
53             IF element.tag == "input";  # wipe out any default value
54                           old_val =  element.attr('value', '');
55                 END;
56        
57
58                 element.as_XML; 
59                 %]
60 </label>
61 [% END; %]
62         
63