]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tpl/default/js/shaarli.js
Multiple minor improvements and bugfixes regarding the new templates:
[github/shaarli/Shaarli.git] / tpl / default / js / shaarli.js
index d8464aa4b86420731552763692e7dae908b53428..d47c257f1773b38e10c7f2904ead3fd1ff170f6a 100644 (file)
@@ -84,7 +84,13 @@ window.onload = function () {
         [].forEach.call(foldAllButtons, function (foldAllButton) {
             foldAllButton.addEventListener('click', function (event) {
                 event.preventDefault();
+                var state = foldAllButton.firstElementChild.getAttribute('class').indexOf('down') != -1 ? 'down' : 'up';
                 [].forEach.call(foldButtons, function (foldButton) {
+                    if (foldButton.firstElementChild.classList.contains('fa-chevron-up') && state == 'down'
+                        || foldButton.firstElementChild.classList.contains('fa-chevron-down') && state == 'up'
+                    ) {
+                        return;
+                    }
                     // Retrieve description
                     var description = null;
                     var thumbnail = null;
@@ -225,4 +231,32 @@ window.onload = function () {
             anchor.style.paddingTop = 0;
         }
     }
+
+    /**
+     * Text area resizer
+     */
+    var description = document.getElementById('lf_description');
+    var observe = function (element, event, handler) {
+        element.addEventListener(event, handler, false);
+    };
+    function init () {
+        function resize () {
+            description.style.height = 'auto';
+            description.style.height = description.scrollHeight+10+'px';
+        }
+        /* 0-timeout to get the already changed text */
+        function delayedResize () {
+            window.setTimeout(resize, 0);
+        }
+        observe(description, 'change',  resize);
+        observe(description, 'cut',     delayedResize);
+        observe(description, 'paste',   delayedResize);
+        observe(description, 'drop',    delayedResize);
+        observe(description, 'keydown', delayedResize);
+
+        resize();
+    }
+    if (description != null) {
+        init();
+    }
 };