source: products/quintagroup.portlet.collection/trunk/quintagroup/portlet/collection/browser/resources/batch.js @ 2740

Last change on this file since 2740 was 2740, checked in by fenix, 14 years ago
  • removed some unnecessary trailing white spaces;
  • fixed batch related labels;
  • made batch_size field disable when batching is not allowed
  • fixed navigation bug (removed unnecessary separator)
File size: 2.7 KB
Line 
1jq(document).ready(function(e) {
2    var prev_link = jq('.prevlink');
3    var next_link = jq('.nextlink');
4    var nav_links = jq('.navlink');
5    var batch_size = 4;
6    batch_size = nav_links.size() > batch_size ? batch_size : nav_links.size();
7
8    var hideNavigation = function (){
9      jq.each(nav_links, function(index, link){
10        jq(link).hide();
11      });
12    };
13
14    var showPageByIndex = function(index){
15      jq('dd[class*=page]').hide();
16      jq('dd.page-'+(index)).show();
17    };
18         
19    var bind_prev_handler = function(link, index){
20      if (index == 0) {
21        jq(link).hide();
22      }
23      jq(link).unbind();
24      jq(link).click(function(e) {
25        if (!(index % batch_size)) {
26          hideNavigation();
27          for (i=1;i<=batch_size;i++){
28            jq(nav_links[index-i]).show();
29            if (i==batch_size) {
30              jq(nav_links[index-i]).find('.navlinkSeparator').hide();
31            }
32          }
33        }
34        nav_link_handler(index-1);
35     });
36    };
37    var bind_next_handler = function(link, index){
38      if (index == nav_links.size()-1) {
39        jq(link).hide();
40      }
41      jq(link).unbind();
42      jq(link).click(function(e) {
43        if (!((index+1) % batch_size)) {
44          hideNavigation();
45          for (i=1;i<=batch_size;i++){
46            if (i+index<nav_links.size()){
47              jq(nav_links[i+index]).show();
48            }
49            if (i==batch_size) {
50              jq(nav_links[i+index]).find('.navlinkSeparator').hide();
51            }
52          }
53        }
54        nav_link_handler(index+1);
55      });
56    };
57    var nav_link_handler = function(index){
58      if (index > 0) {
59        prev_link.show();
60        bind_prev_handler(prev_link, index);
61      }
62      else {
63        prev_link.hide();
64      }
65      if (index < nav_links.size()-1) {
66        next_link.show();
67        bind_next_handler(next_link, index);
68      }
69      else {
70        next_link.hide();
71      }
72      showPageByIndex(index);
73      for (i=0;i<nav_links.size();i++){
74        if (i == index) {
75          jq(nav_links[i]).addClass('selected');
76        }
77        else{
78          jq(nav_links[i]).removeClass('selected');
79      }
80      }
81    }
82    var initialize_navigation = function(){
83      hideNavigation();
84      for (i=0; i<batch_size;i++){
85          jq(nav_links[i]).show();
86          if (i==batch_size-1) {
87            jq(nav_links[i]).find('.navlinkSeparator').hide();
88          }
89      }
90      showPageByIndex(0);
91      bind_prev_handler(prev_link, 0);
92      bind_next_handler(next_link, 0);
93      jq.each(nav_links, function(index, link) {
94        jq(link).unbind();
95        jq(link).click(function(e) {
96          nav_link_handler(index);
97        });
98    });
99    };
100
101   initialize_navigation();
102
103});
Note: See TracBrowser for help on using the repository browser.