[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/libraries/jquery/ -> jquery.virtualpages.js (source)

   1  /**
   2   * Author: Prasad.A
   3   * Copyright: You are free to use or modify this extension in commercial and non-commercial application
   4   * However, make sure to keep the information about this copyright and author information. Provide the
   5   * credits wherever possible.
   6   */
   7  ;(function($){
   8      
   9      $.fn.pushVirtualPage = function() {
  10          // Make this element as root node first
  11          var holder = this;        
  12          if (!holder.hasClass('virtualpages')) {
  13              holder.addClass('virtualpages');
  14          }
  15          
  16          var pages = $('.virtualpage', holder);
  17          
  18          // If its the first page to be added but there are contents
  19          // inside this element, wrap it into a page.
  20          if (pages.length == 0 && holder.children().length) {
  21              var wrapper = $('<div class="virtualpage"></div>');            
  22              var olderChildrens = holder.children();
  23              wrapper.append(olderChildrens.clone(true, true));
  24              olderChildrens.remove();
  25              holder.empty().append(wrapper);            
  26              // rebuild the reference
  27              pages = $('.virtualpage', holder);
  28          }
  29          
  30          // Save scroll position
  31          var activePage = this.activeVirtualPage();
  32          activePage.data('scrolltop', $(window).scrollTop());
  33          
  34          holder.data('virtualpage-activeindex', pages.length);
  35          pages.hide();
  36          
  37          var page = $('<div class="virtualpage"></div>');
  38          page.data('isvirtualpage', true);
  39          holder.append(page);
  40          page.show();
  41          return page;
  42      }
  43      
  44      $.fn.popVirtualPage = function(limit) {
  45          // Page generally will be popped off w.r.t root node
  46          var holder = this;        
  47          if (!this.hasClass('virtualpages')) {
  48              holder = this.closest('.virtualpages');
  49              if (holder.length) return false;
  50          }
  51  
  52          var pages = holder.children('.virtualpage');
  53          if (typeof(limit) == 'undefined') limit = pages.length-1;
  54  
  55          if (pages.length > limit) {
  56              pages.hide();            
  57              var page = pages[pages.length-1];            
  58              $(page).remove();
  59              delete page;
  60                          
  61              var activePage = $(pages[pages.length-2]);
  62              activePage.show();            
  63              // Restore scroll position
  64              if (activePage.data('scrolltop')) {
  65                  $(window).scrollTop(activePage.data('scrolltop'))
  66              }
  67  
  68              holder.data('virtualpage-activeindex', pages.length-2);
  69              return true;
  70          } 
  71          return false;
  72      }
  73      
  74      $.fn.popVirtualPageTo = function(limit) {
  75          while (this.popVirtualPage(limit)) continue;
  76      }
  77      
  78      $.fn.getVirtualPage = function() {
  79          if (this.hasClass('virtualpage')) return this;
  80          return this.closest('.virtualpage');
  81      }
  82      
  83      $.fn.activeVirtualPage = function() {
  84          var holder = this; 
  85          var activeIndex = parseInt(holder.data('virtualpage-activeindex'));
  86          var pages = $('.virtualpage', holder);
  87          return $(pages[activeIndex]);
  88      }
  89  })(jQuery);


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1