aboutsummaryrefslogblamecommitdiffhomepage
path: root/app/Resources/static/themes/baggy/js/init.js
blob: d7d4b166155daf3a4a2c43fb79150ee30949d343 (plain) (tree)
1
2
3
4
5
6
7
8
9





                                          


                                        




                                                                                  

                                          
                                              
                                             






                                                                                  

                                          
               
                                 
 



                                           
               
                                                     
 


                                        
     





                                                                                  



                                        

   




                                                                                  





                                                 
 



                                                                                  

                                    
 


                                                   
 

                                                        
 


                                                   
 






                                                                         
 
                                 
 


                                     
     
   
var $ = global.jquery = require('jquery');
require('jquery.cookie');
require('jquery-ui');
var annotator = require('annotator');


$.fn.ready(function () {
  var $listmode = $('#listmode');
  var $listentries = $('#list-entries');

  /* ==========================================================================
     Menu
     ========================================================================== */

  $('#menu').click(function () {
    $('#links').toggleClass('menu--open');
    if ($('#content').hasClass('opacity03')) {
      $('#content').removeClass('opacity03');
    }
  });

  /* ==========================================================================
     List mode or Table Mode
     ========================================================================== */

  $listmode.click(function () {
    if (jquery.cookie('listmode') === 1) {
      // Cookie
      $.removeCookie('listmode');

      $listentries.removeClass('listmode');
      $listmode.removeClass('tablemode');
      $listmode.addClass('listmode');
    } else {
      // Cookie
      jquery.cookie('listmode', 1, { expires: 365 });

      $listentries.addClass('listmode');
      $listmode.removeClass('listmode');
      $listmode.addClass('tablemode');
    }
  });

  /* ==========================================================================
     Cookie listmode
     ========================================================================== */

  if (jquery.cookie('listmode') === 1) {
    $listentries.addClass('listmode');
    $listmode.removeClass('listmode');
    $listmode.addClass('tablemode');
  }

  /* ==========================================================================
     Add tag panel
     ========================================================================== */


  $('#nav-btn-add-tag').on('click', function () {
    $('.nav-panel-add-tag').toggle(100);
    $('.nav-panel-menu').addClass('hidden');
    $('#tag_label').focus();
    return false;
  });

  /* ==========================================================================
     Annotations & Remember position
     ========================================================================== */

    if ($('article').length) {
      var app = new annotator.App();

      app.include(annotator.ui.main, {
        element: document.querySelector('article'),
      });

      var x = JSON.parse($('#annotationroutes').html());
      app.include(annotator.storage.http, x);

      app.start().then(function () {
        app.annotations.load({ entry: x.entryId });
      });

      $(window).scroll(function (e) {
        var scrollTop = $(window).scrollTop();
        var docHeight = $(document).height();
        var scrollPercent = (scrollTop) / (docHeight);
        var scrollPercentRounded = Math.round(scrollPercent * 100) / 100;
        savePercent(x.entryId, scrollPercentRounded);
      });

      retrievePercent(x.entryId);

      $(window).resize(function () {
          retrievePercent(x.entryId);
      });
    }
});