aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2017-01-07 18:12:24 +0100
committerArthurHoaro <arthur@hoa.ro>2017-01-07 18:12:24 +0100
commit4fae3834fdad47dc37ba8b29c29ae72b2de0e313 (patch)
treecadd08b4283816f1f3a457730475f6dcad9efae3
parent856c0db254460fd33c076b36b0382de01a118819 (diff)
downloadShaarli-4fae3834fdad47dc37ba8b29c29ae72b2de0e313.tar.gz
Shaarli-4fae3834fdad47dc37ba8b29c29ae72b2de0e313.tar.zst
Shaarli-4fae3834fdad47dc37ba8b29c29ae72b2de0e313.zip
tmp
-rw-r--r--tpl/default/js/shaarli.js103
-rw-r--r--tpl/default/linklist.paging.html3
2 files changed, 71 insertions, 35 deletions
diff --git a/tpl/default/js/shaarli.js b/tpl/default/js/shaarli.js
index a382a7eb..ebe0b521 100644
--- a/tpl/default/js/shaarli.js
+++ b/tpl/default/js/shaarli.js
@@ -56,46 +56,79 @@ function getParentByClass(el, className) {
56/** 56/**
57 * Fold/Expand shaares description and thumbnail. 57 * Fold/Expand shaares description and thumbnail.
58 */ 58 */
59var foldButtons = document.querySelectorAll('.fold-button'); 59(function (window, document) {
60[].forEach.call(foldButtons, function(foldButton) { 60 var foldAllButtons = document.getElementsByClassName('fold-all');
61 // Retrieve description 61 var foldButtons = document.getElementsByClassName('fold-button');
62 var description = null; 62
63 var thumbnail = null; 63 [].forEach.call(foldButtons, function (foldButton) {
64 var linklistItem = getParentByClass(foldButton, 'linklist-item'); 64 // Retrieve description
65 if (linklistItem != null) { 65 var description = null;
66 description = linklistItem.querySelector('.linklist-item-description'); 66 var thumbnail = null;
67 thumbnail = linklistItem.querySelector('.linklist-item-thumbnail'); 67 var linklistItem = getParentByClass(foldButton, 'linklist-item');
68 if (description != null || thumbnail != null) { 68 if (linklistItem != null) {
69 foldButton.style.display = 'inline'; 69 description = linklistItem.querySelector('.linklist-item-description');
70 thumbnail = linklistItem.querySelector('.linklist-item-thumbnail');
71 if (description != null || thumbnail != null) {
72 foldButton.style.display = 'inline';
73 }
70 } 74 }
71 }
72 75
73 foldButton.addEventListener('click', function(event) { 76 foldButton.addEventListener('click', function (event) {
74 event.preventDefault(); 77 event.preventDefault();
78 toggleFold(event.target, description, thumbnail);
79 });
80 });
75 81
76 // Switch fold/expand - up = fold 82 if (foldAllButtons != null) {
77 if (event.target.classList.contains('fa-chevron-up')) { 83 [].forEach.call(foldAllButtons, function (foldAllButton) {
78 event.target.title = 'Expand'; 84 foldAllButton.addEventListener('click', function (event) {
79 if (description != null) { 85 event.preventDefault();
80 description.style.display = 'none'; 86 [].forEach.call(foldButtons, function (foldButton) {
81 } 87 // Retrieve description
82 if (thumbnail != null) { 88 var description = null;
83 thumbnail.style.display = 'none'; 89 var thumbnail = null;
84 } 90 var linklistItem = getParentByClass(foldButton, 'linklist-item');
91 if (linklistItem != null) {
92 description = linklistItem.querySelector('.linklist-item-description');
93 thumbnail = linklistItem.querySelector('.linklist-item-thumbnail');
94 if (description != null || thumbnail != null) {
95 foldButton.style.display = 'inline';
96 }
97 }
98
99 toggleFold(foldButton.firstElementChild, description, thumbnail);
100 });
101 foldAllButton.firstElementChild.classList.toggle('fa-chevron-down');
102 foldAllButton.firstElementChild.classList.toggle('fa-chevron-up');
103 });
104 });
105 }
106})(this, this.document);
107
108function toggleFold(button, description, thumb)
109{
110 // Switch fold/expand - up = fold
111 if (button.classList.contains('fa-chevron-up')) {
112 button.title = 'Expand';
113 if (description != null) {
114 description.style.display = 'none';
85 } 115 }
86 else { 116 if (thumb != null) {
87 event.target.title = 'Fold'; 117 thumb.style.display = 'none';
88 if (description != null) {
89 description.style.display = 'block';
90 }
91 if (thumbnail != null) {
92 thumbnail.style.display = 'block';
93 }
94 } 118 }
95 event.target.classList.toggle('fa-chevron-down'); 119 }
96 event.target.classList.toggle('fa-chevron-up'); 120 else {
97 }); 121 button.title = 'Fold';
98}); 122 if (description != null) {
123 description.style.display = 'block';
124 }
125 if (thumb != null) {
126 thumb.style.display = 'block';
127 }
128 }
129 button.classList.toggle('fa-chevron-down');
130 button.classList.toggle('fa-chevron-up');
131}
99 132
100/** 133/**
101 * Confirmation message before deletion. 134 * Confirmation message before deletion.
diff --git a/tpl/default/linklist.paging.html b/tpl/default/linklist.paging.html
index 0b71c9d2..a48f4c18 100644
--- a/tpl/default/linklist.paging.html
+++ b/tpl/default/linklist.paging.html
@@ -13,6 +13,9 @@
13 class={if="$privateonly"}"filter-on"{else}"filter-off"{/if} 13 class={if="$privateonly"}"filter-on"{else}"filter-off"{/if}
14 ><i class="fa fa-key"></i></a> 14 ><i class="fa fa-key"></i></a>
15 {/if} 15 {/if}
16 <a href="#" class="filter-off fold-all" title="Fold all">
17 <i class="fa fa-chevron-up"></i>
18 </a>
16 {loop="$action_plugin"} 19 {loop="$action_plugin"}
17 {$value.attr.class=isset($value.attr.class) ? $value.attr.class : ''} 20 {$value.attr.class=isset($value.attr.class) ? $value.attr.class : ''}
18 {$value.attr.class=!empty($value.on) ? $value.attr.class .' filter-on' : $value.attr.class .' filter-off'} 21 {$value.attr.class=!empty($value.on) ? $value.attr.class .' filter-on' : $value.attr.class .' filter-off'}