diff 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
line wrap: on
line diff
--- a/Lib/IMPL/Web/View/Metadata/FormMeta.pm	Mon Dec 02 02:13:12 2013 +0400
+++ b/Lib/IMPL/Web/View/Metadata/FormMeta.pm	Mon Dec 02 17:44:38 2013 +0400
@@ -37,7 +37,6 @@
 	shift->decl->isOptional;
 }
 
-
 sub GetOwnErrors {
 	my ($this) = @_;
 	
@@ -88,12 +87,15 @@
 быть более одного в то время, как C<isMultiple = false> или, напротив, ни
 одного при C<isOptional = false>.
 
+Как правило для построения формы данное свойство не требуется.
+
 =head2 C<[get]modelType>
 
 Название типа данных из схемы документа (C<< schema->name >>), если тип не имеет название, то это
 C<ComplexNode> для сложных узлов и C<SimpleNode> для простых.
 
-Для моделей с множественными значениями это свойство означает тип элементов.
+Для моделей с множественными значениями это свойство не задано. Тип элементов
+храниться в свойстве C<holdingType>
 
 =head2 C<[get]decl>
 
@@ -119,10 +121,17 @@
 =begin code
 
 for(my $i=0; $i< 10; $i++) {
-	display_model(
-		$meta->model->[$i],
-		schema => meta->schema, 
-	);
+	display_for($i,'template');
+}
+
+sub display_for {
+	my ($index,$tmpl) = @_;
+	
+	if ($index =~ /^\d+$/) {
+		return render($tmpl, meta => { $meta->GetItem($index) });
+	} else {
+		return render($tmpl, meta => { $meta->GetProperty($index) });
+	}
 }
 
 =end code