aboutsummaryrefslogtreecommitdiffstats
path: root/root/base/listview
diff options
context:
space:
mode:
Diffstat (limited to 'root/base/listview')
-rw-r--r--root/base/listview60
1 files changed, 60 insertions, 0 deletions
diff --git a/root/base/listview b/root/base/listview
new file mode 100644
index 0000000..382630d
--- /dev/null
+++ b/root/base/listview
@@ -0,0 +1,60 @@
+[%
+
+PROCESS listview_base;
+
+header_field_block = 'listview_header_field';
+
+BLOCK listview_header_field;
+
+ desc = 0;
+ IF (self.order_by == field_name && !self.order_by_desc);
+ desc = 1;
+ ELSE;
+ desc = 0;
+ END;
+
+ "\n <th"; process_attrs(attrs); '><a '; connect_href(self, order_by => field_name, order_by_desc => desc); '>';
+ loc(self.field_label(field_name)); '</a></th>';
+
+END;
+
+header_block = 'listview_header';
+
+BLOCK listview_header;
+
+ INCLUDE listview_base_header;
+ IF self.row_action_prototypes.size;
+ %]
+ <th colspan="[% self.row_action_prototypes.size %]"[%
+ process_attrs(attrs); %]>[% loc('Actions'); %]</th>[%
+ END;
+
+END;
+
+row_block = 'listview_row';
+
+BLOCK listview_row;
+
+ INCLUDE listview_base_row;
+ FOREACH action IN self.row_actions_for(row);
+ %] <td[% process_attrs(attrs); %]><a href="[% action.uri %]">[%
+ loc(action.label) %]</a></td>[%
+ IF loop.last == 0; "\n"; END;
+ END;
+
+END;
+
+row_field_block = 'listview_row_field';
+
+BLOCK listview_row_field;
+
+ field_value = field_value || row.$f_name;
+
+ IF field_value.isa('DateTime');
+ field_value = field_value.strftime("%F %H:%M:%S");
+ END;
+ INCLUDE listview_base_row_field;
+
+END;
+
+%]