]> BookStack Code Mirror - bookstack/commitdiff
Merge branch 'disable-comments' of git://github.com/Abijeet/BookStack into Abijeet...
authorDan Brown <redacted>
Thu, 7 Dec 2017 19:15:26 +0000 (19:15 +0000)
committerDan Brown <redacted>
Thu, 7 Dec 2017 19:15:26 +0000 (19:15 +0000)
15 files changed:
app/Http/Controllers/PageController.php
resources/lang/de/settings.php
resources/lang/en/settings.php
resources/lang/es/settings.php
resources/lang/fr/settings.php
resources/lang/it/settings.php
resources/lang/ja/settings.php
resources/lang/nl/settings.php
resources/lang/pl/settings.php
resources/lang/pt_BR/settings.php
resources/lang/ru/settings.php
resources/lang/sk/settings.php
resources/views/pages/show.blade.php
resources/views/settings/index.blade.php
tests/Entity/CommentSettingTest.php [new file with mode: 0644]

index c11355db5ce95d1da2ccfa70c3a682cfb1864b09..36cdd3aefdff6477b4a5f069ea62e81be41af16e 100644 (file)
@@ -161,13 +161,19 @@ class PageController extends Controller
         $page->html = $this->entityRepo->renderPage($page);
         $sidebarTree = $this->entityRepo->getBookChildren($page->book);
         $pageNav = $this->entityRepo->getPageNav($page->html);
-        $page->load(['comments.createdBy']);
+
+        // check if the comment's are enabled
+        $areCommentsEnabled = !setting('app-disable-comments');
+        if ($areCommentsEnabled) {
+          $page->load(['comments.createdBy']);
+        }
 
         Views::add($page);
         $this->setPageTitle($page->getShortName());
         return view('pages/show', [
             'page' => $page,'book' => $page->book,
             'current' => $page, 'sidebarTree' => $sidebarTree,
+            'commentsEnabled' => $areCommentsEnabled,
             'pageNav' => $pageNav]);
     }
 
index 2da517292289452e706a5330b3b955adecda90df..e9d19e01b0290febc091338ed7cd8826129ce827 100644 (file)
@@ -31,6 +31,8 @@ return [
     'app_logo_desc' => "Dieses Bild sollte 43px hoch sein.\nGrößere Bilder werden verkleinert.",
     'app_primary_color' => 'Primäre Anwendungsfarbe',
     'app_primary_color_desc' => "Dies sollte ein HEX Wert sein.\nWenn Sie nicht eingeben, wird die Anwendung auf die Standardfarbe zurückgesetzt.",
+    'app_disable_comments' => 'Kommentare deaktivieren',
+    'app_disable_comments_desc' => 'Deaktiviert Kommentare über alle Seiten in der Anwendung. Vorhandene Kommentare werden nicht angezeigt.',
 
     /**
      * Registration settings
index 4153055eb39443d3f427426d95ebd3b5dde86f63..f35c486ad9f6daa36f90257a3a6be50685fad528 100755 (executable)
@@ -34,6 +34,8 @@ return [
     'app_homepage' => 'Application Homepage',
     'app_homepage_desc' => 'Select a page to show on the homepage instead of the default view. Page permissions are ignored for selected pages.',
     'app_homepage_default' => 'Default homepage view chosen',
+    'app_disable_comments' => 'Disable comments',
+    'app_disable_comments_desc' => 'Disable comments across all pages in the application. Existing comments are not shown.',
 
     /**
      * Registration settings
index 9535d3f455146d520e5b060685857217ef912a0b..3c3281d280a0a8186fc256128c70114d671f6134 100644 (file)
@@ -31,6 +31,8 @@ return [
     'app_logo_desc' => 'Esta imagen debería de ser 43px en altura. <br>Iágenes grandes seán escaladas.',
     'app_primary_color' => 'Color primario de la aplicación',
     'app_primary_color_desc' => 'Esto debería ser un valor hexadecimal. <br>Deje el valor vaío para reiniciar al valor por defecto.',
+    'app_disable_comments' => 'Deshabilitar comentarios',
+    'app_disable_comments_desc' => 'Deshabilita los comentarios en todas las páginas de la aplicación. Los comentarios existentes no se muestran. ',
 
     /**
      * Registration settings
index 399afdc9ab3b907bab6f464ccf3c5650aff1dfae..2f0163368210a9c152b60dbe94d96c9fc77cd093 100644 (file)
@@ -31,7 +31,8 @@ return [
     'app_logo_desc' => 'Cette image doit faire 43px de hauteur. <br>Les images plus larges seront réduites.',
     'app_primary_color' => 'Couleur principale de l\'application',
     'app_primary_color_desc' => 'Cela devrait être une valeur hexadécimale. <br>Laisser vide pour rétablir la couleur par défaut.',
-
+    'app_disable_comments' => 'Désactiver les commentaires',
+    'app_disable_comments_desc' => 'Désactive les commentaires sur toutes les pages de l\'application. Les commentaires existants ne sont pas affichés.',
     /**
      * Registration settings
      */
index d112cbc62330f7bd3c01ee3e63bb64e66ec51db7..480e9302ae1695a7db42a9f75a95bfc5f3144305 100755 (executable)
@@ -34,11 +34,12 @@ return [
     'app_homepage' => 'Homepage Applicazione',
     'app_homepage_desc' => 'Seleziona una pagina da mostrare nella home anzichè quella di default. I permessi della pagina sono ignorati per quella selezionata.',
     'app_homepage_default' => 'Homepage di default scelta',
+    'app_disable_comments' => 'Disattiva commenti',
+    'app_disable_comments_desc' => 'Disabilita i commenti su tutte le pagine nell\'applicazione. I commenti esistenti non sono mostrati. ',
 
     /**
      * Registration settings
      */
-
     'reg_settings' => 'Impostazioni Registrazione',
     'reg_allow' => 'Consentire Registrazione?',
     'reg_default_role' => 'Ruolo predefinito dopo la registrazione',
index b4cf57aebdfd855c5c36c2c1db7dd1cb62561110..f9c9c5e86e66460b3e85bf2d52856a34fc8a38ff 100644 (file)
@@ -31,6 +31,8 @@ return [
     'app_logo_desc' => '高さ43pxで表示されます。これを上回る場合、自動で縮小されます。',
     'app_primary_color' => 'プライマリカラー',
     'app_primary_color_desc' => '16進数カラーコードで入力します。空にした場合、デフォルトの色にリセットされます。',
+    'app_disable_comments' => 'コメントを無効にする',
+    'app_disable_comments_desc' => 'アプリケーション内のすべてのページのコメントを無効にします。既存のコメントは表示されません。',
 
     /**
      * Registration settings
@@ -108,5 +110,5 @@ return [
     'users_social_disconnect' => 'アカウントを接続解除',
     'users_social_connected' => '「:socialAccount」がプロフィールに接続されました。',
     'users_social_disconnected' => '「:socialAccount」がプロフィールから接続解除されました。'
-    
+
 ];
index 7b8adf602e7ad0c00176ff9028a882ad45fcf506..ba73dc7e9d250fcb1a2aa5e0acfd3604df55db56 100644 (file)
@@ -31,6 +31,8 @@ return [
     'app_logo_desc' => 'De afbeelding moet 43px hoog zijn. <br>Grotere afbeeldingen worden geschaald.',
     'app_primary_color' => 'Applicatie hoofdkleur',
     'app_primary_color_desc' => 'Geef een hexadecimale waarde. <br>Als je niks invult wordt de standaardkleur gebruikt.',
+    'app_disable_comments' => 'Reacties uitschakelen',
+    'app_disable_comments_desc' => 'Schakel opmerkingen uit op alle pagina\'s in de applicatie. Bestaande opmerkingen worden niet getoond.',
 
     /**
      * Registration settings
index 381e5517a1f8c67e87431883e21adc16bd9dd714..d6f3cca1bbc1c6f73a3342f6b78fe484b217a16a 100644 (file)
@@ -31,6 +31,8 @@ return [
     'app_logo_desc' => 'Ten obrazek powinien mieć nie więcej niż 43px w pionie. <br>Większe obrazki będą skalowane w dół.',
     'app_primary_color' => 'Podstawowy kolor aplikacji',
     'app_primary_color_desc' => 'To powinna być wartość HEX. <br>Zostaw to pole puste, by powrócić do podstawowego koloru.',
+    'app_disable_comments' => 'Wyłącz komentarze',
+    'app_disable_comments_desc' => 'Wyłącz komentarze na wszystkich stronach w aplikacji. Istniejące komentarze nie są pokazywane.',
 
     /**
      * Registration settings
index 0da7985577301c66bddcc8111b9ca185b5606e7a..77a0e6e395ebee8aebc0b5f222e264fc1ea41db5 100644 (file)
@@ -34,6 +34,8 @@ return [
     'app_homepage' => 'Página incial',
     'app_homepage_desc' => 'Selecione a página para ser usada como página inicial em vez da padrão. Permissões da página serão ignoradas.',
     'app_homepage_default' => 'Escolhida página inicial padrão',
+    'app_disable_comments' => 'Desativar comentários',
+    'app_disable_comments_desc' => 'Desativar comentários em todas as páginas no aplicativo. Os comentários existentes não são exibidos.',
 
     /**
      * Registration settings
index 9a9e55fd6ad8ea0c027ff3d8366810b5f8205aad..5d2f07ba9dcdf9eccafb55d8a56e7f4a7219033e 100755 (executable)
@@ -34,6 +34,8 @@ return [
     'app_homepage' => 'Домашняя страница приложения',
     'app_homepage_desc' => 'Выберите страницу, которая будет отображаться на главной странице вместо стандартной. Права на страницы игнорируются для выбранных страниц.',
     'app_homepage_default' => 'Выбрана домашняя страница по-умолчанию',
+    'app_disable_comments' => 'Отключить комментарии',
+    'app_disable_comments_desc' => 'Отключить комментарии на всех страницах приложения. Существующие комментарии не отображаются.',
 
     /**
      * Registration
index 4438f8038750fd9b7895eb62eae81db3c054279f..521af196e5b4458b168df6b9c1538491ceedb59c 100644 (file)
@@ -31,6 +31,8 @@ return [
     'app_logo_desc' => 'Tento obrázok by mal mať 43px na výšku. <br>Veľké obrázky budú preškálované na menší rozmer.',
     'app_primary_color' => 'Primárna farba pre aplikáciu',
     'app_primary_color_desc' => 'Toto by mala byť hodnota v hex tvare. <br>Nechajte prázdne ak chcete použiť prednastavenú farbu.',
+    'app_disable_comments' => 'Zakázať komentáre',
+    'app_disable_comments_desc' => 'Zakázať komentáre na všetkých stránkach aplikácie. Existujúce komentáre sa nezobrazujú.',
 
     /**
      * Registration settings
index 854417962e128697e985f50d88085e67ea7ffd07..3e10ac63af19a7294e13b9703883ed9e2a5ad836 100644 (file)
     </div>
 
     @include('partials/book-tree', ['book' => $book, 'sidebarTree' => $sidebarTree])
-    
+
 @stop
 
 @section('body')
         @include('pages/page-display')
 
     </div>
-
-    <div class="container small nopad">
-        @include('comments/comments', ['page' => $page])
-    </div>
+    @if ($commentsEnabled)
+      <div class="container small nopad">
+          @include('comments/comments', ['page' => $page])
+      </div>
+    @endif
 @stop
 
 @section('scripts')
index 09e480b4381701b477ac98f689866ce04b0f8c09..bee3ac8da43cc9366b02ab84d5cd65f802f8008b 100644 (file)
                             <p class="small">{{ trans('settings.app_secure_images_desc') }}</p>
                             @include('components.toggle-switch', ['name' => 'setting-app-secure-images', 'value' => setting('app-secure-images')])
                         </div>
+                        <div class="form-group">
+                            <label>{{ trans('settings.app_disable_comments') }}</label>
+                            <p class="small">{{ trans('settings.app_disable_comments_desc') }}</p>
+                            @include('components.toggle-switch', ['name' => 'setting-app-disable-comments', 'value' => setting('app-disable-comments')])
+                        </div>
                         <div class="form-group">
                             <label for="setting-app-editor">{{ trans('settings.app_editor') }}</label>
                             <p class="small">{{ trans('settings.app_editor_desc') }}</p>
diff --git a/tests/Entity/CommentSettingTest.php b/tests/Entity/CommentSettingTest.php
new file mode 100644 (file)
index 0000000..29df8b3
--- /dev/null
@@ -0,0 +1,28 @@
+<?php namespace Tests;
+
+class CommentSettingTest extends BrowserKitTest {
+  protected $page;
+
+  public function setUp() {
+      parent::setUp();
+      $this->page = \BookStack\Page::first();
+  }
+
+  public function test_comment_disable () {
+    $this->asAdmin();
+
+    $this->setSettings(['app-disable-comments' => 'true']);
+
+    $this->asAdmin()->visit($this->page->getUrl())
+    ->pageNotHasElement('.comments-list');
+  }
+
+  public function test_comment_enable () {
+    $this->asAdmin();
+
+    $this->setSettings(['app-disable-comments' => 'false']);
+
+    $this->asAdmin()->visit($this->page->getUrl())
+    ->pageHasElement('.comments-list');
+  }
+}
\ No newline at end of file