55 start_param = '__start' |
55 start_param = '__start' |
56 stop_param = '__stop' |
56 stop_param = '__stop' |
57 page_link_templ = u'<span class="slice"><a href="%s" title="%s">%s</a></span>' |
57 page_link_templ = u'<span class="slice"><a href="%s" title="%s">%s</a></span>' |
58 selected_page_link_templ = u'<span class="selectedSlice"><a href="%s" title="%s">%s</a></span>' |
58 selected_page_link_templ = u'<span class="selectedSlice"><a href="%s" title="%s">%s</a></span>' |
59 previous_page_link_templ = next_page_link_templ = page_link_templ |
59 previous_page_link_templ = next_page_link_templ = page_link_templ |
60 no_previous_page_link = u'<<' |
|
61 no_next_page_link = u'>>' |
|
62 |
60 |
63 def __init__(self, req, rset, **kwargs): |
61 def __init__(self, req, rset, **kwargs): |
64 super(NavigationComponent, self).__init__(req, rset=rset, **kwargs) |
62 super(NavigationComponent, self).__init__(req, rset=rset, **kwargs) |
65 self.starting_from = 0 |
63 self.starting_from = 0 |
66 self.total = rset.rowcount |
64 self.total = rset.rowcount |
129 url = xml_escape(self.page_url(path, params, start, stop)) |
127 url = xml_escape(self.page_url(path, params, start, stop)) |
130 if start == self.starting_from: |
128 if start == self.starting_from: |
131 return self.selected_page_link_templ % (url, content, content) |
129 return self.selected_page_link_templ % (url, content, content) |
132 return self.page_link_templ % (url, content, content) |
130 return self.page_link_templ % (url, content, content) |
133 |
131 |
134 def previous_link(self, path, params, content='<<', title=_('previous_results')): |
132 @property |
|
133 def prev_icon_url(self): |
|
134 return xml_escape(self._cw.data_url('go_prev.png')) |
|
135 |
|
136 @property |
|
137 def next_icon_url(self): |
|
138 return xml_escape(self._cw.data_url('go_next.png')) |
|
139 |
|
140 @property |
|
141 def no_previous_page_link(self): |
|
142 return u'<img src="%s" class="prevnext_nogo"/>' % self.prev_icon_url |
|
143 |
|
144 @property |
|
145 def no_next_page_link(self): |
|
146 return u'<img src="%s" class="prevnext_nogo"/>' % self.next_icon_url |
|
147 |
|
148 @property |
|
149 def no_content_prev_link(self): |
|
150 return '<img src="%s" class="prevnext"/>' % self.prev_icon_url |
|
151 |
|
152 @property |
|
153 def no_content_next_link(self): |
|
154 return '<img src="%s" class="prevnext"/>' % self.next_icon_url |
|
155 |
|
156 def previous_link(self, path, params, content=None, title=_('previous_results')): |
|
157 if not content: |
|
158 content = self.no_content_prev_link |
135 start = self.starting_from |
159 start = self.starting_from |
136 if not start : |
160 if not start : |
137 return self.no_previous_page_link |
161 return self.no_previous_page_link |
138 start = max(0, start - self.page_size) |
162 start = max(0, start - self.page_size) |
139 stop = start + self.page_size - 1 |
163 stop = start + self.page_size - 1 |
140 url = xml_escape(self.page_url(path, params, start, stop)) |
164 url = xml_escape(self.page_url(path, params, start, stop)) |
141 return self.previous_page_link_templ % (url, title, content) |
165 return self.previous_page_link_templ % (url, title, content) |
142 |
166 |
143 def next_link(self, path, params, content='>>', title=_('next_results')): |
167 def next_link(self, path, params, content=None, title=_('next_results')): |
|
168 if not content: |
|
169 content = self.no_content_next_link |
144 start = self.starting_from + self.page_size |
170 start = self.starting_from + self.page_size |
145 if start >= self.total: |
171 if start >= self.total: |
146 return self.no_next_page_link |
172 return self.no_next_page_link |
147 stop = start + self.page_size - 1 |
173 stop = start + self.page_size - 1 |
148 url = xml_escape(self.page_url(path, params, start, stop)) |
174 url = xml_escape(self.page_url(path, params, start, stop)) |