summaryrefslogtreecommitdiff
path: root/addons/website/static/src
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@openerp.com>2013-09-03 12:41:15 +0200
committerChristophe Matthieu <chm@openerp.com>2013-09-03 12:41:15 +0200
commit1fbf4c63499a8ab11dfd7c6774ac8f46076b02c7 (patch)
tree73074c08b2880b11886c325a27358da7f9ff88c2 /addons/website/static/src
parent2cccfcb5562977b3224543aef19955875bce3344 (diff)
[IMP] website: publisher with css for activated and disabled
bzr revid: chm@openerp.com-20130903104115-9yukaqh0teh45ipf
Diffstat (limited to 'addons/website/static/src')
-rw-r--r--addons/website/static/src/css/website.css38
-rw-r--r--addons/website/static/src/css/website.sass46
-rw-r--r--addons/website/static/src/js/website.js17
3 files changed, 69 insertions, 32 deletions
diff --git a/addons/website/static/src/css/website.css b/addons/website/static/src/css/website.css
index 80644222c1f..3c8aee57ef2 100644
--- a/addons/website/static/src/css/website.css
+++ b/addons/website/static/src/css/website.css
@@ -162,22 +162,44 @@ ul.nav-stacked > li > a {
text-transform: uppercase;
}
-/* ---- PUBLISH BUTTON ---- */
-a.css_unpublish .css_unpublish {
+/* ---- PUBLISH ---- */
+a[data-publish] {
+ text-decoration: none !important;
+ z-index: 2;
+}
+a[data-publish] .label {
+ padding: 5px 8px;
+}
+a[data-publish] .css_unpublish, a[data-publish] .css_publish, a[data-publish] .css_unpublished, a[data-publish] .css_published {
display: none;
}
-a.css_unpublish:hover .css_unpublish {
+a[data-publish][data-publish='off'] .css_unpublished, a[data-publish][data-publish='off']:hover .css_publish {
display: inline;
}
-a.css_unpublish:hover .css_publish {
+a[data-publish][data-publish='off']:hover .css_unpublished {
display: none;
}
-a.css_publish .css_publish {
+a[data-publish][data-publish='on'] .css_published, a[data-publish][data-publish='on']:hover .css_unpublish {
+ display: inline;
+}
+a[data-publish][data-publish='on']:hover .css_published {
display: none;
}
-a.css_publish:hover .css_publish {
- display: inline;
+
+[data-publish='off']:not(a) > :not([data-publish]) {
+ opacity: 0.5;
+}
+
+[data-publish]:not(a) {
+ position: relative;
+ overflow: visible;
}
-a.css_publish:hover .css_unpublish {
+[data-publish]:not(a) > [data-publish] {
+ position: absolute;
+ right: -6px;
+ top: -10px;
display: none;
}
+[data-publish]:not(a):hover > [data-publish] {
+ display: block;
+}
diff --git a/addons/website/static/src/css/website.sass b/addons/website/static/src/css/website.sass
index 65e530e6ed9..b5468a4b0e8 100644
--- a/addons/website/static/src/css/website.sass
+++ b/addons/website/static/src/css/website.sass
@@ -126,21 +126,35 @@ ul.nav-stacked > li > a
.dropdown-header
text-transform: uppercase
-/* ---- PUBLISH BUTTON ---- */
-a
- &.css_unpublish
- .css_unpublish
+/* ---- PUBLISH ---- */
+a[data-publish]
+ text-decoration: none !important
+ z-index: 2
+ .label
+ padding: 5px 8px
+ .css_unpublish, .css_publish, .css_unpublished, .css_published
+ display: none
+ &[data-publish='off']
+ .css_unpublished, &:hover .css_publish
+ display: inline
+ &:hover .css_unpublished
display: none
- &:hover
- .css_unpublish
- display: inline
- .css_publish
- display: none
- &.css_publish
- .css_publish
+ &[data-publish='on']
+ .css_published, &:hover .css_unpublish
+ display: inline
+ &:hover .css_published
display: none
- &:hover
- .css_publish
- display: inline
- .css_unpublish
- display: none
+
+[data-publish='off']:not(a)
+ >:not([data-publish])
+ opacity: 0.5
+[data-publish]:not(a)
+ position: relative
+ overflow: visible
+ >[data-publish]
+ position: absolute
+ right: -6px
+ top: -10px
+ display: none
+ &:hover > [data-publish]
+ display: block \ No newline at end of file
diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js
index 4352129fe2f..54920e87410 100644
--- a/addons/website/static/src/js/website.js
+++ b/addons/website/static/src/js/website.js
@@ -138,16 +138,17 @@
dom_ready.then(function () {
/* ----- PUBLISHING STUFF ---- */
+ $('[data-publish]:has([data-publish])').each(function () {
+ var $pub = $("[data-publish]", this);
+ $(this).attr("data-publish", $pub.attr("data-publish"));
+ });
+
$(document).on('click', '.js_publish', function (e) {
e.preventDefault();
- var $link = $(this);
- $link.toggleClass("css_publish").toggleClass("css_unpublish");
- $.post('/website/publish', {'id': $link.data('id'), 'object': $link.data('object')}, function (result) {
- if (+result) {
- $link.addClass("css_publish").removeClass("css_unpublish");
- } else {
- $link.removeClass("css_publish").addClass("css_unpublish");
- }
+ 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');
});
});