aboutsummaryrefslogtreecommitdiffhomepage
path: root/tpl/default/js/shaarli.js
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 /tpl/default/js/shaarli.js
parent856c0db254460fd33c076b36b0382de01a118819 (diff)
downloadShaarli-4fae3834fdad47dc37ba8b29c29ae72b2de0e313.tar.gz
Shaarli-4fae3834fdad47dc37ba8b29c29ae72b2de0e313.tar.zst
Shaarli-4fae3834fdad47dc37ba8b29c29ae72b2de0e313.zip
tmp
Diffstat (limited to 'tpl/default/js/shaarli.js')
-rw-r--r--tpl/default/js/shaarli.js103
1 files changed, 68 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.