瀏覽代碼

fixed cloing entree history nav

Bachir Soussi Chiadmi 7 年之前
父節點
當前提交
d485286289

+ 7 - 14
sites/all/modules/figli/edlp_corpus/assets/dist/scripts/corpus.min.js

@@ -616,9 +616,7 @@
     // | __|_ _| |_ _ _ ___ ___ ___
     // | _|| ' \  _| '_/ -_) -_|_-<
     // |___|_||_\__|_| \___\___/__/
-    // TODO : this functionn is not clear as it should be called toggleEntry
-    function openEntree(tid, bubbling){
-      //var $link = $('a.term-link[tid="'+tid+'"]');
+    function toggleEntree(tid, bubbling){
       var $link = _$entrees_block_termlinks.filter('[tid="'+tid+'"]');
       var $li = $link.parents('li');
       var sys_path = $link.attr('data-drupal-link-system-path');
@@ -630,6 +628,7 @@
         if(bubbling){
           _$body.trigger({'type':'open_entree', 'tid':tid, 'url':url, 'sys_path':sys_path});
         }
+      // bubbling is true only when event is a real click on entree link
       }else if(bubbling){
         $li.removeClass('opened');
         scrambleCollection();
@@ -696,20 +695,14 @@
     // |___/\__|_| \__,_|_|_|_|_.__/_|_|_||_\__, |
     //                                      |___/
     function scrambleCollection(){
-      console.log('scrambleCollection');
+      // console.log('scrambleCollection');
       for (var i = 0; i < _nodes.length; i++) {
         _nodes[i].scramble();
       }
       // setTimeout(stopScrambling, 2000);
       // stopScrambling();
     };
-    // function stopScrambling(){
-    //   for (var i = 0; i < _nodes.length; i++) {
-    //     setTimeout(function(n){
-    //       n.stopScrambling();
-    //     }.bind(this, _nodes[i]), 1000 + Math.random()*4000);
-    //   }
-    // };
+
     function closeAllEntries(){
       _$entrees_block_termlinks.each(function(index, el) {
         if($(this).parents('li').is('.opened')){
@@ -821,7 +814,7 @@
           closeNode();
         })
         .on('open-entree', function(e){
-          openEntree(e.tid);
+          toggleEntree(e.tid);
         })
         .on('close-all-entree', function(e){
           closeAllEntries();
@@ -830,7 +823,7 @@
       _$entrees_block_termlinks.on('click', function(event) {
         // console.log('_$entrees_block_termlinks click', this);
         event.preventDefault();
-        openEntree($(this).attr('tid'), true);
+        toggleEntree($(this).attr('tid'), true);
         // var $link = $(this);
         // var tid = $link.attr('tid');
         // var $li = $link.parents('li');
@@ -839,7 +832,7 @@
         // if(!$li.is('.opened')){
         //   _$entrees_block_termlinks.parents('li').removeClass('opened');
         //   $li.addClass('opened');
-        //   openEntree(tid);
+        //   toggleEntree(tid);
         //   _$body.trigger({'type':'open_entree', 'tid':tid, 'url':url, 'sys_path':sys_path});
         // }else{
         //   $li.removeClass('opened');

+ 7 - 14
sites/all/modules/figli/edlp_corpus/assets/scripts/corpus.js

@@ -616,9 +616,7 @@
     // | __|_ _| |_ _ _ ___ ___ ___
     // | _|| ' \  _| '_/ -_) -_|_-<
     // |___|_||_\__|_| \___\___/__/
-    // TODO : this functionn is not clear as it should be called toggleEntry
-    function openEntree(tid, bubbling){
-      //var $link = $('a.term-link[tid="'+tid+'"]');
+    function toggleEntree(tid, bubbling){
       var $link = _$entrees_block_termlinks.filter('[tid="'+tid+'"]');
       var $li = $link.parents('li');
       var sys_path = $link.attr('data-drupal-link-system-path');
@@ -630,6 +628,7 @@
         if(bubbling){
           _$body.trigger({'type':'open_entree', 'tid':tid, 'url':url, 'sys_path':sys_path});
         }
+      // bubbling is true only when event is a real click on entree link
       }else if(bubbling){
         $li.removeClass('opened');
         scrambleCollection();
@@ -696,20 +695,14 @@
     // |___/\__|_| \__,_|_|_|_|_.__/_|_|_||_\__, |
     //                                      |___/
     function scrambleCollection(){
-      console.log('scrambleCollection');
+      // console.log('scrambleCollection');
       for (var i = 0; i < _nodes.length; i++) {
         _nodes[i].scramble();
       }
       // setTimeout(stopScrambling, 2000);
       // stopScrambling();
     };
-    // function stopScrambling(){
-    //   for (var i = 0; i < _nodes.length; i++) {
-    //     setTimeout(function(n){
-    //       n.stopScrambling();
-    //     }.bind(this, _nodes[i]), 1000 + Math.random()*4000);
-    //   }
-    // };
+
     function closeAllEntries(){
       _$entrees_block_termlinks.each(function(index, el) {
         if($(this).parents('li').is('.opened')){
@@ -821,7 +814,7 @@
           closeNode();
         })
         .on('open-entree', function(e){
-          openEntree(e.tid);
+          toggleEntree(e.tid);
         })
         .on('close-all-entree', function(e){
           closeAllEntries();
@@ -830,7 +823,7 @@
       _$entrees_block_termlinks.on('click', function(event) {
         // console.log('_$entrees_block_termlinks click', this);
         event.preventDefault();
-        openEntree($(this).attr('tid'), true);
+        toggleEntree($(this).attr('tid'), true);
         // var $link = $(this);
         // var tid = $link.attr('tid');
         // var $li = $link.parents('li');
@@ -839,7 +832,7 @@
         // if(!$li.is('.opened')){
         //   _$entrees_block_termlinks.parents('li').removeClass('opened');
         //   $li.addClass('opened');
-        //   openEntree(tid);
+        //   toggleEntree(tid);
         //   _$body.trigger({'type':'open_entree', 'tid':tid, 'url':url, 'sys_path':sys_path});
         // }else{
         //   $li.removeClass('opened');

+ 7 - 3
sites/all/themes/custom/edlptheme/assets/dist/scripts/main.min.js

@@ -348,7 +348,7 @@
     function onHistoryPopState(e){
       console.log('onPopState',e.state);
       if(e.state.home){
-        backToFrontPage();
+        backToFrontPage(true);
       }else{
         if(e.state.entree_tid){
           openEntree(e.state.entree_tid);
@@ -369,7 +369,8 @@
     function initAjaxLinks(){
       // console.log('initAjaxLinks');
 
-      $('a', '#block-mainnavigation')
+      $('a.site-name', '#block-edlptheme-branding')
+        .add('a', '#block-mainnavigation')
         .add('a', '#block-footer.menu--footer')
         .add('a', '#block-productions')
         .add('a', 'article.node:not(.node--type-enregistrement) h2.node-title')
@@ -1070,13 +1071,16 @@
     // | _| '_/ _ \ ' \  _|  _/ _` / _` / -_)
     // |_||_| \___/_||_\__|_| \__,_\__, \___|
     //                             |___/
-    function backToFrontPage(){
+    function backToFrontPage(pop_state){
       closeAllModals();
       // assume we are going back to front page
       $('body').removeClass().addClass('path-frontpage');
       $('a[data-drupal-link-system-path="<front>"]').addClass('is-active');
       // close entrees
       _$corpus_canvas.trigger({'type':'close-all-entree'});
+      if(!pop_state){
+        history.pushState({home:true}, null, window.location.origin);
+      }
     }
 
     function initHome(){

+ 7 - 3
sites/all/themes/custom/edlptheme/assets/scripts/main.js

@@ -348,7 +348,7 @@
     function onHistoryPopState(e){
       console.log('onPopState',e.state);
       if(e.state.home){
-        backToFrontPage();
+        backToFrontPage(true);
       }else{
         if(e.state.entree_tid){
           openEntree(e.state.entree_tid);
@@ -369,7 +369,8 @@
     function initAjaxLinks(){
       // console.log('initAjaxLinks');
 
-      $('a', '#block-mainnavigation')
+      $('a.site-name', '#block-edlptheme-branding')
+        .add('a', '#block-mainnavigation')
         .add('a', '#block-footer.menu--footer')
         .add('a', '#block-productions')
         .add('a', 'article.node:not(.node--type-enregistrement) h2.node-title')
@@ -1070,13 +1071,16 @@
     // | _| '_/ _ \ ' \  _|  _/ _` / _` / -_)
     // |_||_| \___/_||_\__|_| \__,_\__, \___|
     //                             |___/
-    function backToFrontPage(){
+    function backToFrontPage(pop_state){
       closeAllModals();
       // assume we are going back to front page
       $('body').removeClass().addClass('path-frontpage');
       $('a[data-drupal-link-system-path="<front>"]').addClass('is-active');
       // close entrees
       _$corpus_canvas.trigger({'type':'close-all-entree'});
+      if(!pop_state){
+        history.pushState({home:true}, null, window.location.origin);
+      }
     }
 
     function initHome(){

+ 2 - 2
sites/all/themes/custom/edlptheme/templates/block/block--system-branding-block.html.twig

@@ -17,12 +17,12 @@
   {% if site_logo or site_name %}
     <h1>
     {% if site_logo %}
-      <a href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home" class="site-logo">
+      <a href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home" class="site-logo" data-drupal-link-system-path="<front>">
         <img src="{{ site_logo }}" alt="{{ 'Home'|t }}" />
       </a>
     {% endif %}
     {% if site_name %}
-        <a class="site-name" href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home">{{ site_name }}</a>
+        <a class="site-name" href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home" data-drupal-link-system-path="<front>">{{ site_name }}</a>
     {% endif %}
     </h1>
   {% endif %}