X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ex%2Ffancy_example%2Ftemplates%2Fcustom%2Fdisplay_inputs;fp=ex%2Ffancy_example%2Ftemplates%2Fcustom%2Fdisplay_inputs;h=0000000000000000000000000000000000000000;hb=79aa8d27d124d06bf88b2fc0487ae97563b98936;hp=6baf703c7acb546588fba45696575704c3075bc2;hpb=1c8db728a3fb5adb4f0ea876ea1316457700edf8;p=maypole.git diff --git a/ex/fancy_example/templates/custom/display_inputs b/ex/fancy_example/templates/custom/display_inputs deleted file mode 100644 index 6baf703..0000000 --- a/ex/fancy_example/templates/custom/display_inputs +++ /dev/null @@ -1,114 +0,0 @@ -[%# - -=head1 display_inputs - -This *RECURSIVELY* displays inputs for a hash of html elements - -Vars it needs: - classmetadata-- the hash of bunch of data: - cgi -- inputs keyed on column names - table -- table inputs are for - columns -- list in order want displayed inputs - colnames -- hash of what to label inputs - -errors -- hash of errors keyed on columns - - -TODO -- make it recognize a general submit button for redisplaying -values on errors - -=cut - -# -%] - -[% # some variables - foreign = []; - names = []; - # get hash of related classes keyed on accessor for Foreign Inputs - USE this = Class(classmetadata.name); - tbl = classmetadata.table; - required = { }; - FOR c IN request.config.$tbl.required_cols; - required.$c = 1; - END; - -%] - -[% -SET heading_shown = 0; -FOR col = classmetadata.columns; - NEXT IF !classmetadata.cgi.$col; - NEXT IF col == "id" OR col == classmetadata.table _ "_id"; - # Display foreign inputs last - IF (mykeys = classmetadata.cgi.$col.keys); - foreign.push(col); - names.push(classmetadata.colnames.$col); - NEXT; - END; - IF ! heading_shown; - heading = classmetadata.moniker | ucfirst; - "

$heading

"; - SET heading_shown = 1; - END; -%] - -[% # Base case starts here - - SET elem = classmetadata.cgi.$col; #.clone; # not sure why clone - IF elem.type == 'hidden'; - elem.as_XML; - NEXT; - ELSIF cgi_params; - param_col = col_prefix _ col; - IF elem.tag == "textarea"; - elem = elem.push_content(cgi_params.$param_col); - ELSIF elem.tag == "select"; - oldval = set_selected(elem, cgi_params.$col); - ELSE; - oldval = elem.attr("value", cgi_params.$param_col); - END; - END; -%] - - - - [% IF errors.$col %] - [% errors.$col | html %] - [% END %] -[% END; %] - - - -[% USE this = Class(classmetadata.name); - FOR col IN foreign; - # has_many mapping throws a stick in our spokes because related_class returns the mapped - # class. Sometimes we just want the has_many class. - - # In case of Pub Handpumps maps to Beer and we want to add Handpump to Pub, we dont - # want the mapped data . - # In case of "Create New Handpump" -- we want the mapped data probably so we get - # Beer inputs and Pub select box. - - fclass_rel_meta = this.related_meta(request, col); - fclass = fclass_rel_meta.foreign_class; # ignor args.mapping - fclass_meta = this.get_classmetadata(fclass); - fclass_meta.cgi = classmetadata.cgi.$col; - # USE Dumper; Dumper.dump(fclass_meta); - INCLUDE display_inputs - col_prefix = col _ "__AF__" _ col_prefix - errors = errors.$col - heading = names.shift - classmetadata = fclass_meta; # localize - END; -%] -