comparison Lib/IMPL/Web/View/Metadata/FormProvider.pm @ 367:608e74bc309f

form metadata, mostly done
author cin
date Tue, 03 Dec 2013 17:55:36 +0400
parents 935629bf80df
children
comparison
equal deleted inserted replaced
366:935629bf80df 367:608e74bc309f
28 my $navi = SchemaNavigator->new($meta->schema); 28 my $navi = SchemaNavigator->new($meta->schema);
29 29
30 foreach my $decl (@{$meta->schema->content->childNodes}) { 30 foreach my $decl (@{$meta->schema->content->childNodes}) {
31 31
32 my $schema = $navi->NavigateName($decl->name); 32 my $schema = $navi->NavigateName($decl->name);
33 $navi->SchemaBack();
33 34
34 my @nodes = $meta->model && $meta->model->selectNodes( sub { $_->schemaSource == $decl } ); 35 my @nodes = $meta->model && $meta->model->selectNodes( sub { $_->schemaSource == $decl } );
35 36
36 my %args = ( 37 my %args = (
37 name => $decl->name, 38 name => $decl->name,
50 } else { 51 } else {
51 $model = shift @nodes; 52 $model = shift @nodes;
52 $type = $decl->type; 53 $type = $decl->type;
53 } 54 }
54 55
55 push @props, Meta->new( 56 push @props, Meta->new($this,$model,$type,\%args);
56 $this,
57 \@nodes,
58 $decl->type,
59 {
60 name => $decl->name,
61 schema => $schema,
62 }
63 )
64 } 57 }
65 } 58 }
66 59
60 sub GetItems {
61 my ($this,$meta) = @_;
62
63 if ($meta->isMultiple)
64 }
67 65
68 sub _IsErrorRelates { 66 sub GetItem {
69 my ($nodes,$source,$err) = @_; 67 my ($this,$meta,$index) = @_;
70 68 }
71 # this is an own error 69
72 return 1 if ($err->node && grep($err->node == $_, @$nodes)) || (not(@$nodes) && $err->schema == $source ); 70
73 71
74 # this error relates to the child control
75
76 return 0 unless @$nodes;
77
78 for (my $n = $err->parent; $n ; $n = $n->parentNode) {
79 return 1 if grep($n == $_, @$nodes);
80 }
81
82 return 0;
83 }
84 72
85 1; 73 1;