comparison Lib/IMPL/Web/View/Metadata/FormMeta.pm @ 366:935629bf80df

model metadata, in progress
author cin
date Mon, 02 Dec 2013 17:44:38 +0400
parents 7c621bb95e53
children 608e74bc309f
comparison
equal deleted inserted replaced
365:7c621bb95e53 366:935629bf80df
34 } 34 }
35 35
36 sub isOptional { 36 sub isOptional {
37 shift->decl->isOptional; 37 shift->decl->isOptional;
38 } 38 }
39
40 39
41 sub GetOwnErrors { 40 sub GetOwnErrors {
42 my ($this) = @_; 41 my ($this) = @_;
43 42
44 my $node = undef; 43 my $node = undef;
86 Ссылка на массив с узлами документа. В теории количество узлов может быть 85 Ссылка на массив с узлами документа. В теории количество узлов может быть
87 произвольным, поскольку документ может быть некорректным, т.е. их может 86 произвольным, поскольку документ может быть некорректным, т.е. их может
88 быть более одного в то время, как C<isMultiple = false> или, напротив, ни 87 быть более одного в то время, как C<isMultiple = false> или, напротив, ни
89 одного при C<isOptional = false>. 88 одного при C<isOptional = false>.
90 89
90 Как правило для построения формы данное свойство не требуется.
91
91 =head2 C<[get]modelType> 92 =head2 C<[get]modelType>
92 93
93 Название типа данных из схемы документа (C<< schema->name >>), если тип не имеет название, то это 94 Название типа данных из схемы документа (C<< schema->name >>), если тип не имеет название, то это
94 C<ComplexNode> для сложных узлов и C<SimpleNode> для простых. 95 C<ComplexNode> для сложных узлов и C<SimpleNode> для простых.
95 96
96 Для моделей с множественными значениями это свойство означает тип элементов. 97 Для моделей с множественными значениями это свойство не задано. Тип элементов
98 храниться в свойстве C<holdingType>
97 99
98 =head2 C<[get]decl> 100 =head2 C<[get]decl>
99 101
100 Объявление элемента формы, объявление может совпадать со схемой в случае, 102 Объявление элемента формы, объявление может совпадать со схемой в случае,
101 когда это был C<SimpleNode> или C<ComplexNode>, иначе это C<Node> ссылающийся 103 когда это был C<SimpleNode> или C<ComplexNode>, иначе это C<Node> ссылающийся
117 не свойства а сами элементы, в данном случае они их именами будут индексы. 119 не свойства а сами элементы, в данном случае они их именами будут индексы.
118 120
119 =begin code 121 =begin code
120 122
121 for(my $i=0; $i< 10; $i++) { 123 for(my $i=0; $i< 10; $i++) {
122 display_model( 124 display_for($i,'template');
123 $meta->model->[$i], 125 }
124 schema => meta->schema, 126
125 ); 127 sub display_for {
128 my ($index,$tmpl) = @_;
129
130 if ($index =~ /^\d+$/) {
131 return render($tmpl, meta => { $meta->GetItem($index) });
132 } else {
133 return render($tmpl, meta => { $meta->GetProperty($index) });
134 }
126 } 135 }
127 136
128 =end code 137 =end code
129 138
130 =head2 C<GetOwnErrors()> 139 =head2 C<GetOwnErrors()>