Browse Source

record defaults during initialization, fixes #682

El RIDO 5 years ago
parent
commit
77ee40909f
4 changed files with 53 additions and 11 deletions
  1. 9 6
      js/privatebin.js
  2. 42 3
      js/test/TopNav.js
  3. 1 1
      tpl/bootstrap.php
  4. 1 1
      tpl/page.php

+ 9 - 6
js/privatebin.js

@@ -3508,6 +3508,8 @@ jQuery.PrivateBin = (function($, RawDeflate) {
 
 
         let createButtonsDisplayed = false,
         let createButtonsDisplayed = false,
             viewButtonsDisplayed = false,
             viewButtonsDisplayed = false,
+            burnAfterReadingDefault = false,
+            openDiscussionDefault = false,
             $attach,
             $attach,
             $burnAfterReading,
             $burnAfterReading,
             $burnAfterReadingOption,
             $burnAfterReadingOption,
@@ -4152,11 +4154,10 @@ jQuery.PrivateBin = (function($, RawDeflate) {
         me.resetInput = function()
         me.resetInput = function()
         {
         {
             clearAttachmentInput();
             clearAttachmentInput();
-
-            $openDiscussion.prop('checked', false);
-            $burnAfterReading.prop('checked', false);
-            $openDiscussionOption.removeClass('buttondisabled');
-            $burnAfterReadingOption.removeClass('buttondisabled');
+            $burnAfterReading.prop('checked', burnAfterReadingDefault);
+            $openDiscussion.prop('checked', openDiscussionDefault);
+            if (openDiscussionDefault) $openDiscussionOption.removeClass('buttondisabled');
+            if (burnAfterReadingDefault) $burnAfterReadingOption.removeClass('buttondisabled');
 
 
             // TODO: reset expiration time
             // TODO: reset expiration time
         };
         };
@@ -4356,7 +4357,9 @@ jQuery.PrivateBin = (function($, RawDeflate) {
             changeBurnAfterReading();
             changeBurnAfterReading();
             changeOpenDiscussion();
             changeOpenDiscussion();
 
 
-            // get default value from template or fall back to set value
+            // get default values from template or fall back to set value
+            burnAfterReadingDefault = me.getBurnAfterReading();
+            openDiscussionDefault = me.getOpenDiscussion();
             pasteExpiration = Model.getExpirationDefault() || pasteExpiration;
             pasteExpiration = Model.getExpirationDefault() || pasteExpiration;
 
 
             createButtonsDisplayed = false;
             createButtonsDisplayed = false;

+ 42 - 3
js/test/TopNav.js

@@ -363,7 +363,7 @@ describe('TopNav', function () {
         );
         );
 
 
         it(
         it(
-            'reset inputs to defaults (options on)',
+            'reset inputs to defaults (burnafterreading on)',
             function () {
             function () {
                 var results = [];
                 var results = [];
                 $('body').html(
                 $('body').html(
@@ -380,10 +380,9 @@ describe('TopNav', function () {
                     $.PrivateBin.TopNav.getBurnAfterReading()
                     $.PrivateBin.TopNav.getBurnAfterReading()
                 );
                 );
                 results.push(
                 results.push(
-                    $.PrivateBin.TopNav.getOpenDiscussion()
+                    !$.PrivateBin.TopNav.getOpenDiscussion()
                 );
                 );
                 $('#burnafterreading').removeAttr('checked');
                 $('#burnafterreading').removeAttr('checked');
-                $('#opendiscussion').removeAttr('checked');
                 results.push(
                 results.push(
                     !$.PrivateBin.TopNav.getBurnAfterReading()
                     !$.PrivateBin.TopNav.getBurnAfterReading()
                 );
                 );
@@ -394,6 +393,46 @@ describe('TopNav', function () {
                 results.push(
                 results.push(
                     $.PrivateBin.TopNav.getBurnAfterReading()
                     $.PrivateBin.TopNav.getBurnAfterReading()
                 );
                 );
+                results.push(
+                    !$.PrivateBin.TopNav.getOpenDiscussion()
+                );
+                cleanup();
+                assert.ok(results.every(element => element));
+            }
+        );
+
+        it(
+            'reset inputs to defaults (opendiscussion on)',
+            function () {
+                var results = [];
+                $('body').html(
+                    '<nav><div id="navbar"><ul><li id="burnafterreadingoption" ' +
+                    'class="hidden"><label><input type="checkbox" ' +
+                    'id="burnafterreading" name="burnafterreading" /> ' +
+                    'Burn after reading</label></li><li id="opendiscussionoption" ' +
+                    'class="hidden"><label><input type="checkbox" ' +
+                    'id="opendiscussion" name="opendiscussion" checked="checked" /> ' +
+                    'Open discussion</label></li></ul></div></nav>'
+                );
+                $.PrivateBin.TopNav.init();
+                results.push(
+                    !$.PrivateBin.TopNav.getBurnAfterReading()
+                );
+                results.push(
+                    $.PrivateBin.TopNav.getOpenDiscussion()
+                );
+                $('#opendiscussion').removeAttr('checked');
+                $('#burnafterreading').prop('checked', true);
+                results.push(
+                    $.PrivateBin.TopNav.getBurnAfterReading()
+                );
+                results.push(
+                    !$.PrivateBin.TopNav.getOpenDiscussion()
+                );
+                $.PrivateBin.TopNav.resetInput();
+                results.push(
+                    !$.PrivateBin.TopNav.getBurnAfterReading()
+                );
                 results.push(
                 results.push(
                     $.PrivateBin.TopNav.getOpenDiscussion()
                     $.PrivateBin.TopNav.getOpenDiscussion()
                 );
                 );

+ 1 - 1
tpl/bootstrap.php

@@ -72,7 +72,7 @@ endif;
 ?>
 ?>
 		<script type="text/javascript" data-cfasync="false" src="js/purify-2.2.7.js" integrity="sha512-7Ka1I/nJuR2CL8wzIS5PJS4HgEMd0HJ6kfAl6fFhwFBB27rhztFbe0tS+Ex+Qg+5n4nZIT4lty4k4Di3+X9T4A==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/purify-2.2.7.js" integrity="sha512-7Ka1I/nJuR2CL8wzIS5PJS4HgEMd0HJ6kfAl6fFhwFBB27rhztFbe0tS+Ex+Qg+5n4nZIT4lty4k4Di3+X9T4A==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/legacy.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-LYos+qXHIRqFf5ZPNphvtTB0cgzHUizu2wwcOwcwz/VIpRv9lpcBgPYz4uq6jx0INwCAj6Fbnl5HoKiLufS2jg==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/legacy.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-LYos+qXHIRqFf5ZPNphvtTB0cgzHUizu2wwcOwcwz/VIpRv9lpcBgPYz4uq6jx0INwCAj6Fbnl5HoKiLufS2jg==" crossorigin="anonymous"></script>
-		<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-3IcMpzyLRym+sBfYDMbQknNHwBW6Yh+B4aqhGrh7nkqvvNEcShmuZSPg+OVbtTvpX/9ylJl217gmtXiMNu0lZg==" crossorigin="anonymous"></script>
+		<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-vJA5JXQBkfshqUIYHM/SkXWjBpwrZLlSXYRm+NERFD7t4Dg0tEdDV0NdBsItj1NXqfJ1062fT5okEav5eqUSMA==" crossorigin="anonymous"></script>
 		<!-- icon -->
 		<!-- icon -->
 		<link rel="apple-touch-icon" href="<?php echo I18n::encode($BASEPATH); ?>img/apple-touch-icon.png" sizes="180x180" />
 		<link rel="apple-touch-icon" href="<?php echo I18n::encode($BASEPATH); ?>img/apple-touch-icon.png" sizes="180x180" />
 		<link rel="icon" type="image/png" href="img/favicon-32x32.png" sizes="32x32" />
 		<link rel="icon" type="image/png" href="img/favicon-32x32.png" sizes="32x32" />

+ 1 - 1
tpl/page.php

@@ -50,7 +50,7 @@ endif;
 ?>
 ?>
 		<script type="text/javascript" data-cfasync="false" src="js/purify-2.2.7.js" integrity="sha512-7Ka1I/nJuR2CL8wzIS5PJS4HgEMd0HJ6kfAl6fFhwFBB27rhztFbe0tS+Ex+Qg+5n4nZIT4lty4k4Di3+X9T4A==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/purify-2.2.7.js" integrity="sha512-7Ka1I/nJuR2CL8wzIS5PJS4HgEMd0HJ6kfAl6fFhwFBB27rhztFbe0tS+Ex+Qg+5n4nZIT4lty4k4Di3+X9T4A==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/legacy.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-LYos+qXHIRqFf5ZPNphvtTB0cgzHUizu2wwcOwcwz/VIpRv9lpcBgPYz4uq6jx0INwCAj6Fbnl5HoKiLufS2jg==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/legacy.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-LYos+qXHIRqFf5ZPNphvtTB0cgzHUizu2wwcOwcwz/VIpRv9lpcBgPYz4uq6jx0INwCAj6Fbnl5HoKiLufS2jg==" crossorigin="anonymous"></script>
-		<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-3IcMpzyLRym+sBfYDMbQknNHwBW6Yh+B4aqhGrh7nkqvvNEcShmuZSPg+OVbtTvpX/9ylJl217gmtXiMNu0lZg==" crossorigin="anonymous"></script>
+		<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-vJA5JXQBkfshqUIYHM/SkXWjBpwrZLlSXYRm+NERFD7t4Dg0tEdDV0NdBsItj1NXqfJ1062fT5okEav5eqUSMA==" crossorigin="anonymous"></script>
 		<!-- icon -->
 		<!-- icon -->
 		<link rel="apple-touch-icon" href="img/apple-touch-icon.png?<?php echo rawurlencode($VERSION); ?>" sizes="180x180" />
 		<link rel="apple-touch-icon" href="img/apple-touch-icon.png?<?php echo rawurlencode($VERSION); ?>" sizes="180x180" />
 		<link rel="icon" type="image/png" href="img/favicon-32x32.png?<?php echo rawurlencode($VERSION); ?>" sizes="32x32" />
 		<link rel="icon" type="image/png" href="img/favicon-32x32.png?<?php echo rawurlencode($VERSION); ?>" sizes="32x32" />