]> git.decadent.org.uk Git - maypole.git/commitdiff
improved pager; improved Maypole::View::TT documentation
authorAaron Trevena <aaron.trevena@gmail.com>
Thu, 10 Nov 2005 10:09:17 +0000 (10:09 +0000)
committerAaron Trevena <aaron.trevena@gmail.com>
Thu, 10 Nov 2005 10:09:17 +0000 (10:09 +0000)
git-svn-id: http://svn.maypole.perl.org/Maypole/trunk@424 48953598-375a-da11-a14b-00016c27c3ee

Changes
lib/Maypole/View/TT.pm
templates/factory/pager

diff --git a/Changes b/Changes
index b93de7f48c9ef3533df4ef75358385d0607ffc42..8e634cf993f83c9c95375e55d0315e13415d7a85 100644 (file)
--- a/Changes
+++ b/Changes
@@ -9,11 +9,9 @@ Deprecated:
     in $r->params, or anything else, is DEPRECATED and likely to break in future 
     releases. Be good, and use proper method calls. 
 
-Incompatible API changes:
-    Maypole:
-        - is_applicable() renamed to is_model_applicable(), and returns boolean 
-            instead of a status code. Old-style is_applicable() will still work, 
-           but issues a warning.
+    is_applicable() renamed to is_model_applicable(), and returns boolean 
+    instead of a status code. Old-style is_applicable() will still work, 
+    but issues a warning.
 
 API additions and enhancements:
     Maypole::Application:
@@ -31,6 +29,8 @@ API additions and enhancements:
        - setup() split into setup(), setup_model(), and load_model_subclass()
         - added new path processing methods for ssl and default table/action
        - added make_path() and make_uri()
+     Templates:
+        - Improved pager macro/include
 
 Bug fixes:
     Fix to cgi_maypole.t (bug 11346)
@@ -41,6 +41,8 @@ Bug fixes:
         @ISA directly, and doesn't inject itself into the chain (bugs 12923 & 14120)
     Improved Template error reporting (14133)
     Maypole::Session::generate_unique_id() now returns the id (bug 14124)
+    Implement -Init flag in Mp::Application (wishlist 14123)
+    add() alias to push() in Mp::Headers (wishlist 14142)
     Moved ar accessor to Apache::MVC (bug 14014)
     Refactored core to support further development in 2.11 and onwards
     Fixed related_class method (bug 14566)
@@ -55,6 +57,8 @@ Documentation:
            Maypole::Manual::About
        - added Maypole::Manual::Inheritance
        - added Maypole::Manual::Terminology
+        - updated Maypole::Manual::View
+        - updated Maypole::View:TT
 
 
 
index 6f9fbc6bbc7115278c717983066e403670c7c9aa..8b12debb15be5217a95022770a064f920129e4e1 100644 (file)
@@ -54,7 +54,13 @@ Maypole::View::TT - A Template Toolkit view class for Maypole
 
     .....
 
-    [%# Template Toolkit directives and maypole macros go here %]
+    [% PROCESS macros %]
+
+    [% pager %]
+
+    [% link %]
+
+    [% maybe_link_view %]
 
 =head1 DESCRIPTION
 
@@ -249,13 +255,42 @@ L<Template::Manual::Directives> documentation.
 
 =head1 MAYPOLE MACROS AND FILTERS
 
-Maypole provides a collection of useful and powerful macros...TO DO
+Maypole provides a collection of useful and powerful macros in the templates/factory/macros
+ and other templates. These can be used in any template with [% PROCESS templatename %].
 
 =head2 link
 
-=head2 other macros
+This creates an <A HREF="..."> to a command in the Apache::MVC system by
+catenating the base URL, table, command, and any arguments.
+
+=head2 maybe_link_view
+
+C<maybe_link_view> takes something returned from the database - either
+some ordinary data, or an object in a related class expanded by a
+has-a relationship. If it is an object, it constructs a link to the view
+command for that object. Otherwise, it just displays the data.
+
+=head2 pager
 
-=head2 finish this documentation
+This is an include template rather than a macro, and it controls the pager
+display at the bottom (by default) of the factory list and search views/template.
+It expects a C<pager> template argument which responds to the L<Data::Page> interface.
+
+This macro is in the pager template and used as :
+
+[% PROCESS pager %]
+
+Maypole provides a pager for list and search actions, otherwise you can
+provide a pager in the template using Template::Plugin::Pagination.
+
+[% USE pager = Pagination(objects, page.current, page.rows) %]
+...
+[% PROCESS pager %]
+
+The pager will use a the request action  as the action in the url unless the
+pager_action variable is set, which it will use instead if available.
+
+=head2 other macros
 
 =head1 AUTHOR
 
index 6aed9c21c9cf024d31b0d37bdb1bc678069f6d14..78c89fd6aa93da92fef0f4d59738b37f52588db5 100644 (file)
@@ -12,6 +12,10 @@ IF pager AND pager.first_page != pager.last_page;
 %]
 <p class="pager">Pages: 
 [%
+    UNLESS pager_action;
+       SET pager_action = request.action;
+    END;
+   
     SET begin_page = pager.current_page - 10;
     IF begin_page < 1;
         SET begin_page = pager.first_page;
@@ -30,14 +34,13 @@ IF pager AND pager.first_page != pager.last_page;
              IF request.params.order;
            SET args = args _ "&amp;o2=desc"
              IF request.params.o2 == "desc";
-            SET action = "list";
             FOR col = classmetadata.columns.list;
               IF request.params.$col;
                 SET args = args _ "&" _ col _ "=" _ request.params.$col;
                 SET action = "search";
               END;
             END;
-            link(classmetadata.table, action, args, label);
+            link(classmetadata.table, pager_action, args, label);
           END;
      END;
 %]