Переглянути джерело

adding option to hide clone button on expiring pastes, resolves #34

El RIDO 10 роки тому
батько
коміт
ca07398b66

+ 4 - 0
cfg/conf.ini

@@ -53,6 +53,10 @@ languageselection = false
 ; make sure the value exists in [expire_options]
 default = "1week"
 
+; optionally the "clone" button can be disabled on expiring pastes
+; note that this only hides the button, copy & paste is still possible
+; clone = false
+
 [expire_options]
 ; Set each one of these to the number of seconds in the expiration period,
 ; or 0 if it should never expire

+ 1 - 0
lib/configuration.php

@@ -46,6 +46,7 @@ class configuration
         ),
         'expire' => array(
             'default' => '1week',
+            'clone' => true,
         ),
         'expire_options' => array(
             '5min' => 300,

+ 12 - 1
lib/zerobin.php

@@ -47,6 +47,14 @@ class zerobin
      */
     private $_data = '';
 
+    /**
+     * does the paste expire
+     *
+     * @access private
+     * @var    bool
+     */
+    private $_doesExpire = false;
+
     /**
      * formatter
      *
@@ -354,7 +362,9 @@ class zerobin
             $paste = $this->_model->getPaste($dataid);
             if ($paste->exists())
             {
-                $this->_data = json_encode($paste->get());
+                $data = $paste->get();
+                $this->_doesExpire = property_exists($data, 'meta') && property_exists($data->meta, 'expire_date');
+                $this->_data = json_encode($data);
             }
             else
             {
@@ -434,6 +444,7 @@ class zerobin
         $page->assign('LANGUAGES', i18n::getLanguageLabels(i18n::getAvailableLanguages()));
         $page->assign('EXPIRE', $expire);
         $page->assign('EXPIREDEFAULT', $this->_conf->getKey('default', 'expire'));
+        $page->assign('EXPIRECLONE', !$this->_doesExpire || ($this->_doesExpire && $this->_conf->getKey('clone', 'expire')));
         $page->draw($this->_conf->getKey('template'));
     }
 

+ 2 - 2
tpl/bootstrap-compact.html

@@ -41,10 +41,10 @@
 						<li>
 							<button id="sendbutton" type="button" class="hidden btn btn-default navbar-btn">
 								<span class="glyphicon glyphicon-upload" aria-hidden="true"></span> {function="t('Send')"}
-							</button>
+							</button>{if="$EXPIRECLONE"}
 							<button id="clonebutton" type="button" class="hidden btn btn-default navbar-btn">
 								<span class="glyphicon glyphicon-duplicate" aria-hidden="true"></span> {function="t('Clone')"}
-							</button>
+							</button>{/if}
 							<button id="rawtextbutton" type="button" class="hidden btn btn-default navbar-btn">
 								<span class="glyphicon glyphicon-text-background" aria-hidden="true"></span> {function="t('Raw text')"}
 							</button>

+ 2 - 2
tpl/bootstrap-page.html

@@ -40,10 +40,10 @@
 						<li>
 							<button id="sendbutton" type="button" class="hidden btn btn-default navbar-btn">
 								<span class="glyphicon glyphicon-upload" aria-hidden="true"></span> {function="t('Send')"}
-							</button>
+							</button>{if="$EXPIRECLONE"}
 							<button id="clonebutton" type="button" class="hidden btn btn-default navbar-btn">
 								<span class="glyphicon glyphicon-duplicate" aria-hidden="true"></span> {function="t('Clone')"}
-							</button>
+							</button>{/if}
 							<button id="rawtextbutton" type="button" class="hidden btn btn-default navbar-btn">
 								<span class="glyphicon glyphicon-text-background" aria-hidden="true"></span> {function="t('Raw text')"}
 							</button>

+ 2 - 2
tpl/bootstrap.html

@@ -40,10 +40,10 @@
 						<li>
 							<button id="newbutton" type="button" class="reloadlink hidden btn btn-default navbar-btn">
 								<span class="glyphicon glyphicon-file" aria-hidden="true"></span> {function="t('New')"}
-							</button>
+							</button>{if="$EXPIRECLONE"}
 							<button id="clonebutton" type="button" class="hidden btn btn-default navbar-btn">
 								<span class="glyphicon glyphicon-duplicate" aria-hidden="true"></span> {function="t('Clone')"}
-							</button>
+							</button>{/if}
 							<button id="rawtextbutton" type="button" class="hidden btn btn-default navbar-btn">
 								<span class="glyphicon glyphicon-text-background" aria-hidden="true"></span> {function="t('Raw text')"}
 							</button>

+ 2 - 2
tpl/page.html

@@ -43,8 +43,8 @@
 				<div id="errormessage" class="hidden">{$ERROR|htmlspecialchars}</div>
 				<div id="toolbar">
 					<button id="newbutton" class="reloadlink hidden"><img src="img/icon_new.png" width="11" height="15" alt="" />{function="t('New')"}</button>
-					<button id="sendbutton" class="hidden"><img src="img/icon_send.png" width="18" height="15" alt="" />{function="t('Send')"}</button>
-					<button id="clonebutton" class="hidden"><img src="img/icon_clone.png" width="15" height="17" alt="" />{function="t('Clone')"}</button>
+					<button id="sendbutton" class="hidden"><img src="img/icon_send.png" width="18" height="15" alt="" />{function="t('Send')"}</button>{if="$EXPIRECLONE"}
+					<button id="clonebutton" class="hidden"><img src="img/icon_clone.png" width="15" height="17" alt="" />{function="t('Clone')"}</button>{/if}
 					<button id="rawtextbutton" class="hidden"><img src="img/icon_raw.png" width="15" height="15" alt="" />{function="t('Raw text')"}</button>
 					<div id="expiration" class="hidden button">{function="t('Expires')"}:
 						<select id="pasteExpiration" name="pasteExpiration">

+ 1 - 0
tst/RainTPL.php

@@ -43,6 +43,7 @@ class RainTPLTest extends PHPUnit_Framework_TestCase
         $page->assign('LANGUAGES', i18n::getLanguageLabels(i18n::getAvailableLanguages()));
         $page->assign('EXPIRE', self::$expire);
         $page->assign('EXPIREDEFAULT', self::$expire_default);
+        $page->assign('EXPIRECLONE', true);
         ob_start();
         $page->draw('page');
         $this->_content = ob_get_contents();