diff --git a/core/lib/Thelia/Action/Content.php b/core/lib/Thelia/Action/Content.php
index a76664955..4e41331fb 100644
--- a/core/lib/Thelia/Action/Content.php
+++ b/core/lib/Thelia/Action/Content.php
@@ -24,6 +24,7 @@
namespace Thelia\Action;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Thelia\Core\Event\Content\ContentCreateEvent;
+use Thelia\Core\Event\Content\ContentToggleVisibilityEvent;
use Thelia\Core\Event\Content\ContentUpdateEvent;
use Thelia\Core\Event\TheliaEvents;
use Thelia\Core\Event\UpdatePositionEvent;
@@ -97,6 +98,19 @@ class Content extends BaseAction implements EventSubscriberInterface
}
}
}
+
+ public function toggleVisibility(ContentToggleVisibilityEvent $event)
+ {
+ $content = $event->getContent();
+
+ $content
+ ->setDispatcher($this->getDispatcher())
+ ->setVisible(!$content->getVisible())
+ ->save();
+
+ }
+
+
/**
* Returns an array of event names this subscriber wants to listen to.
*
diff --git a/core/lib/Thelia/Config/Resources/routing/admin.xml b/core/lib/Thelia/Config/Resources/routing/admin.xml
index b4beb9799..5decff765 100755
--- a/core/lib/Thelia/Config/Resources/routing/admin.xml
+++ b/core/lib/Thelia/Config/Resources/routing/admin.xml
@@ -239,6 +239,10 @@
Thelia\Controller\Admin\ContentController::updatePositionAction
+
+ Thelia\Controller\Admin\ContentController::setToggleVisibilityAction
+
+
diff --git a/core/lib/Thelia/Controller/Admin/ContentController.php b/core/lib/Thelia/Controller/Admin/ContentController.php
index d91596ac0..7b865ca05 100644
--- a/core/lib/Thelia/Controller/Admin/ContentController.php
+++ b/core/lib/Thelia/Controller/Admin/ContentController.php
@@ -23,6 +23,7 @@
namespace Thelia\Controller\Admin;
use Thelia\Core\Event\Content\ContentCreateEvent;
+use Thelia\Core\Event\Content\ContentToggleVisibilityEvent;
use Thelia\Core\Event\Content\ContentUpdateEvent;
use Thelia\Core\Event\TheliaEvents;
use Thelia\Core\Event\UpdatePositionEvent;
@@ -314,4 +315,12 @@ class ContentController extends AbstractCrudController
$positionValue
);
}
+
+ /**
+ * @return FolderToggleVisibilityEvent|void
+ */
+ protected function createToggleVisibilityEvent()
+ {
+ return new ContentToggleVisibilityEvent($this->getExistingObject());
+ }
}
\ No newline at end of file
diff --git a/core/lib/Thelia/Core/Event/Content/ContentToggleVisibilityEvent.php b/core/lib/Thelia/Core/Event/Content/ContentToggleVisibilityEvent.php
new file mode 100644
index 000000000..55176635c
--- /dev/null
+++ b/core/lib/Thelia/Core/Event/Content/ContentToggleVisibilityEvent.php
@@ -0,0 +1,35 @@
+. */
+/* */
+/*************************************************************************************/
+
+namespace Thelia\Core\Event\Content;
+
+
+/**
+ * Class ContentToggleVisibilityEvent
+ * @package Thelia\Core\Event\Content
+ * @author manuel raynaud
+ */
+class ContentToggleVisibilityEvent extends ContentEvent
+{
+
+}
\ No newline at end of file
diff --git a/core/lib/Thelia/Core/Template/Loop/Content.php b/core/lib/Thelia/Core/Template/Loop/Content.php
index 0136f4e9c..ce966bf5c 100755
--- a/core/lib/Thelia/Core/Template/Loop/Content.php
+++ b/core/lib/Thelia/Core/Template/Loop/Content.php
@@ -236,6 +236,7 @@ class Content extends BaseI18nLoop
->set("POSITION", $content->getPosition())
->set("DEFAULT_FOLDER", $content->getDefaultFolderId())
->set("URL", $content->getUrl($locale))
+ ->set("VISIBLE", $content->getVisible())
;
$loopResult->addRow($loopResultRow);
diff --git a/templates/admin/default/folders.html b/templates/admin/default/folders.html
index a4e1c0fc7..a39419b30 100644
--- a/templates/admin/default/folders.html
+++ b/templates/admin/default/folders.html
@@ -567,7 +567,7 @@
$(".contentVisibleToggle").on('switch-change', function(event, data) {
$.ajax({
- url : "{url path='admin/contents/toggle-online'}",
+ url : "{url path='admin/content/toggle-online'}",
data : {
content_id : $(this).data('id'),
action : 'visibilityToggle'