diff --git a/addons/website/static/src/css/website.css b/addons/website/static/src/css/website.css
index 29a443e50ea..5249450386f 100644
--- a/addons/website/static/src/css/website.css
+++ b/addons/website/static/src/css/website.css
@@ -375,17 +375,17 @@ a[data-publish][data-publish='on']:hover .css_published {
opacity: 0.5;
}
-[data-publish='off']:not(a) > :not([data-publish]) {
+[data-publish='off']:not(a) > :not(.js_publish) {
opacity: 0.5;
}
[data-publish]:not(a) {
position: relative;
overflow: visible;
- /*&:hover > [data-publish] */
+ /*&:hover .js_publish */
/* display: block */
}
-[data-publish]:not(a) > [data-publish] {
+[data-publish]:not(a) .js_publish {
position: absolute;
right: -6px;
top: -10px;
diff --git a/addons/website/static/src/css/website.sass b/addons/website/static/src/css/website.sass
index 52937f25192..94ac792ea65 100644
--- a/addons/website/static/src/css/website.sass
+++ b/addons/website/static/src/css/website.sass
@@ -285,15 +285,15 @@ a[data-publish]
.unpublish
opacity: 0.5
[data-publish='off']:not(a)
- >:not([data-publish])
+ >:not(.js_publish)
opacity: 0.5
[data-publish]:not(a)
position: relative
overflow: visible
- >[data-publish]
+ .js_publish
position: absolute
right: -6px
top: -10px
display: none
- /*&:hover > [data-publish]*/
+ /*&:hover .js_publish*/
/* display: block*/
diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js
index 1cfd076f8e3..b26a0a7e76c 100644
--- a/addons/website/static/src/js/website.js
+++ b/addons/website/static/src/js/website.js
@@ -116,20 +116,18 @@
dom_ready.then(function () {
/* ----- PUBLISHING STUFF ---- */
- $('[data-publish]:has([data-publish])').each(function () {
- var $pub = $("[data-publish]", this);
- if($pub.size())
- $(this).attr("data-publish", $pub.attr("data-publish"));
- else
- $(this).removeAttr("data-publish");
+ $('[data-publish]:has(.js_publish)').each(function () {
+ $(this).attr("data-publish", $(".js_publish li.active", this).size() ? "on" : 'off');
});
- $(document).on('click', '.js_publish', function (e) {
- e.preventDefault();
- var $data = $(":first", this).parents("[data-publish]");
- $data.attr("data-publish", $data.first().attr("data-publish") == 'off' ? 'on' : 'off');
- $.post('/website/publish', {'id': $(this).data('id'), 'object': $(this).data('object')}, function (result) {
- $data.attr("data-publish", +result ? 'on' : 'off');
+ $(document).on('click', '.js_publish a.js_publish_btn', function (e) {
+ var $li = $(this).parent("li");
+ var $data = $li.parents(".js_publish:first");
+ var publish = $li.hasClass("active");
+ $li.toggleClass("active");
+ $.post('/website/publish', {'id': $data.data('id'), 'object': $data.data('object')}, function (result) {
+ $li.toggleClass("active", !!+result);
+ $li.parents("[data-publish]").attr("data-publish", +result ? 'on' : 'off');
});
});
diff --git a/addons/website/views/views.xml b/addons/website/views/views.xml
index a5466e38dca..b5cf9c68e6d 100644
--- a/addons/website/views/views.xml
+++ b/addons/website/views/views.xml
@@ -336,12 +336,15 @@
-
- Publish
- Unpublish
- Published
- Unpublished
-
+
+
+