summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@openerp.com>2013-11-16 16:09:27 +0100
committerFabien Pinckaers <fp@openerp.com>2013-11-16 16:09:27 +0100
commitceb04895d36a1e7bda3f0eea0904ab923a746687 (patch)
treec506dc4d19b80577b9f0022f7c5eb6e15fe31af1
parent1129cc5d39652f47c807dea358a03dbdf3c26087 (diff)
[IMP] Cleaning code of followers and website_published, 200 lines removed
[IMP] CSS and design of options and follow, avoid custom CSS bzr revid: fp@openerp.com-20131116150927-4mjk1zdcgfzt4e95
-rw-r--r--addons/website/controllers/main.py2
-rw-r--r--addons/website/static/src/css/website.css43
-rw-r--r--addons/website/static/src/css/website.sass38
-rw-r--r--addons/website/static/src/js/website.js39
-rw-r--r--addons/website/views/website_templates.xml16
-rw-r--r--addons/website_blog/views/website_blog_templates.xml5
-rw-r--r--addons/website_mail/static/src/css/Makefile2
-rw-r--r--addons/website_mail/static/src/css/website_mail.css40
-rw-r--r--addons/website_mail/static/src/css/website_mail.sass33
-rw-r--r--addons/website_mail/static/src/js/website_mail.js31
-rw-r--r--addons/website_mail/views/website_mail.xml30
11 files changed, 54 insertions, 225 deletions
diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index b1ed14dc95b..4a8cb1e7528 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -253,7 +253,7 @@ class Website(openerp.addons.web.controllers.main.Home):
values, context=request.context)
obj = _object.browse(request.cr, request.uid, _id)
- return obj.website_published and True or False
+ return bool(obj.website_published)
@website.route(['/website/kanban/'], type='http', auth="public")
def kanban(self, **post):
diff --git a/addons/website/static/src/css/website.css b/addons/website/static/src/css/website.css
index e0ca7104dc4..99ba04e2a96 100644
--- a/addons/website/static/src/css/website.css
+++ b/addons/website/static/src/css/website.css
@@ -389,54 +389,19 @@ ul.nav-stacked > li > a {
}
/* ---- PUBLISH ---- */
-a[data-publish] {
- text-decoration: none !important;
-}
-a[data-publish] .css_unpublish, a[data-publish] .css_publish, a[data-publish] .css_unpublished, a[data-publish] .css_published {
- display: none;
-}
-a[data-publish][data-publish='off'] .css_unpublished, a[data-publish][data-publish='off']:hover .css_publish {
- display: inline;
-}
-a[data-publish][data-publish='off']:hover .css_unpublished {
- display: none;
-}
-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;
-}
-
-.dropdown .css_unpublish, .dropdown .css_publish {
+.css_unpublish, .css_publish {
display: none;
}
-.dropdown.css_publish .css_unpublish, .dropdown.css_unpublish .css_publish {
+.css_published .css_unpublish, .css_unpublished .css_publish {
display: block;
}
-.unpublish {
+[data-publish='off'] {
opacity: 0.5;
}
-[data-publish='off']:not(a) > :not(.js_publish) {
- opacity: 0.5;
-}
-
-[data-publish]:not(a) {
- position: relative;
- overflow: visible;
- /*&:hover .js_publish */
- /* display: block */
-}
-[data-publish]:not(a) .js_publish {
- position: absolute;
- right: -6px;
- top: -10px;
- display: none;
-}
-
+/* ---- END of PUBLISH ---- */
::selection {
background: rgba(150, 150, 220, 0.3);
}
diff --git a/addons/website/static/src/css/website.sass b/addons/website/static/src/css/website.sass
index f0a9d9b8d3c..f947a163a28 100644
--- a/addons/website/static/src/css/website.sass
+++ b/addons/website/static/src/css/website.sass
@@ -296,41 +296,17 @@ ul.nav-stacked > li > a
text-transform: uppercase
/* ---- PUBLISH ---- */
-a[data-publish]
- text-decoration: none !important
- .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
- &[data-publish='on']
- .css_published, &:hover .css_unpublish
- display: inline
- &:hover .css_published
- display: none
-
-.dropdown .css_unpublish, .dropdown .css_publish
+.css_unpublish, .css_publish
display: none
-.dropdown.css_publish .css_unpublish, .dropdown.css_unpublish .css_publish
+.css_published .css_unpublish, .css_unpublished .css_publish
display: block
-.unpublish
+[data-publish='off']
opacity: 0.5
-[data-publish='off']:not(a)
- >:not(.js_publish)
- opacity: 0.5
-[data-publish]:not(a)
- position: relative
- overflow: visible
- .js_publish
- position: absolute
- right: -6px
- top: -10px
- display: none
- /*&:hover .js_publish*/
- /* display: block*/
+
+/* ---- END of PUBLISH ---- */
+
+
::selection
background: rgba(150, 150, 220, 0.3)
diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js
index 0653a278b86..b1ba9b801fc 100644
--- a/addons/website/static/src/js/website.js
+++ b/addons/website/static/src/js/website.js
@@ -224,44 +224,13 @@
$('.js_tooltip').bstooltip();
/* ----- PUBLISHING STUFF ---- */
- $('[data-publish]:has(.js_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_management)').each(function () {
- $(this).attr("data-publish", $(".js_publish_management .btn-success", this).size() ? "on" : 'off');
- $(this).attr("data-publish", $(".js_publish_management .btn-success", this).size() ? "on" : 'off');
- });
-
- $(document).on('click', '.js_publish', function (e) {
- e.preventDefault();
- var $a = $(this);
- var $data = $a.find(":first").parents("[data-publish]");
- openerp.jsonRpc($a.data('controller') || '/website/publish', 'call', {'id': +$a.data('id'), 'object': $a.data('object')})
- .then(function (result) {
- $data.attr("data-publish", +result ? 'on' : 'off');
- }).fail(function (err, data) {
- website.error(data, '/web#model='+$a.data('object')+'&id='+$a.data('id'));
- });
- return false;
- });
-
$(document).on('click', '.js_publish_management .js_publish_btn', function () {
- var $data = $(this).parents(".js_publish_management:first");
- var $btn = $data.find('.btn:first');
- var publish = $btn.hasClass("btn-success");
-
- $data.toggleClass("css_unpublish css_publish");
- $btn.removeClass("btn-default btn-success");
-
+ var $data = $(this).parent(".js_publish_management");
+ var self=this;
openerp.jsonRpc($data.data('controller') || '/website/publish', 'call', {'id': +$data.data('id'), 'object': $data.data('object')})
.then(function (result) {
- $btn.toggleClass("btn-default", !result).toggleClass("btn-success", result);
- $data.toggleClass("css_unpublish", !result).toggleClass("css_publish", result);
+ $data.toggleClass("css_unpublished css_published");
+ $(self).toggleClass("btn-success btn-danger");
$data.parents("[data-publish]").attr("data-publish", +result ? 'on' : 'off');
}).fail(function (err, data) {
website.error(data, '/web#model='+$data.data('object')+'&id='+$data.data('id'));
diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml
index 96963686b0c..b8174ea05a6 100644
--- a/addons/website/views/website_templates.xml
+++ b/addons/website/views/website_templates.xml
@@ -266,15 +266,17 @@
</template>
<template id="publish_management">
- <div t-if="has_access_write" t-ignore="true" class="pull-right hidden-xs" t-att-style="style or ''">
- <div t-attf-class="btn-group dropdown js_publish_management #{object.id and object.website_published and 'css_publish' or 'css_unpublish'}" t-att-data-id="object.id" t-att-data-object="object._name" t-att-data-controller="publish_controller">
- <a t-attf-class="btn btn-sm btn-#{object.id and object.website_published and 'success' or 'default'}" t-att-id="'dopprod-%s' % object.id" role="button" data-toggle="dropdown">Options <span class="caret"></span></a>
+ <div t-if="has_access_write" t-ignore="true" class="pull-right" t-att-style="style or ''">
+ <div t-attf-class="btn-group js_publish_management #{object.website_published and 'css_published' or 'css_unpublished'}" t-att-data-id="object.id" t-att-data-object="object._name" t-att-data-controller="publish_controller">
+ <button t-attf-class="btn btn-#{object.website_published and 'success' or 'danger'} js_publish_btn">
+ <span class="css_publish">Not Published</span>
+ <span class="css_unpublish">Published</span>
+ </button>
+ <button type="button" t-attf-class="btn btn-default dropdown-toggle" t-att-id="'dopprod-%s' % object.id" data-toggle="dropdown">
+ <span class="caret"></span>
+ </button>
<ul class="dropdown-menu" role="menu" t-att-aria-labelledby="'dopprod-%s' % object.id">
<t t-raw="0"/>
- <li>
- <a href="#" class="js_publish_btn css_unpublish">Unpublish</a>
- <a href="#" class="js_publish_btn css_publish">Publish</a>
- </li>
<li t-if="publish_edit">
<a t-att-href="'/web#model=%s&amp;id=%s' % (object._name, object.id)"
title='Edit in backend'>Edit</a>
diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml
index 19013191c87..ea26862356d 100644
--- a/addons/website_blog/views/website_blog_templates.xml
+++ b/addons/website_blog/views/website_blog_templates.xml
@@ -253,11 +253,8 @@
</xpath>
<xpath expr="//div[@id='blog_right_column']" position="inside">
<section class="mt32">
- <h4>Follow us</h4>
+ <h4>Follow us<small t-if="category">: <t t-esc="category.name"/></small></h4>
<t t-if="category">
- <p class="text-muted">
- Subscribe to: <t t-esc="category.name"/>
- </p>
<t t-call="website_mail.follow">
<t t-set="email" t-value="user_id.email"/>
<t t-set="object" t-value="category"/>
diff --git a/addons/website_mail/static/src/css/Makefile b/addons/website_mail/static/src/css/Makefile
deleted file mode 100644
index d7c1ea77439..00000000000
--- a/addons/website_mail/static/src/css/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-sass:
- sass -t expanded --unix-newlines --watch website_mail.sass:website_mail.css&
diff --git a/addons/website_mail/static/src/css/website_mail.css b/addons/website_mail/static/src/css/website_mail.css
deleted file mode 100644
index a93199a2ddf..00000000000
--- a/addons/website_mail/static/src/css/website_mail.css
+++ /dev/null
@@ -1,40 +0,0 @@
-/* ---- FOLLOW ---- */
-a[data-follow] {
- text-decoration: none !important;
- z-index: 2;
-}
-a[data-follow] .label {
- padding: 5px 8px;
-}
-a[data-follow] .css_unfollow, a[data-follow] .css_follow, a[data-follow] .css_unfollowed, a[data-follow] .css_followed {
- display: none;
-}
-a[data-follow][data-follow='off'] .css_unfollowed, a[data-follow][data-follow='off']:hover .css_follow {
- display: inline;
-}
-a[data-follow][data-follow='off']:hover .css_unfollowed {
- display: none;
-}
-a[data-follow][data-follow='on'] .css_followed, a[data-follow][data-follow='on']:hover .css_unfollow {
- display: inline;
-}
-a[data-follow][data-follow='on']:hover .css_followed {
- display: none;
-}
-
-[data-follow='off']:not(a) > :not([data-follow]) {
- opacity: 0.5;
-}
-
-[data-follow]:not(a) {
- position: relative;
- overflow: visible;
- /*&:hover > [data-follow] */
- /* display: block */
-}
-[data-follow]:not(a) > [data-follow] {
- position: absolute;
- right: -6px;
- top: -10px;
- display: none;
-}
diff --git a/addons/website_mail/static/src/css/website_mail.sass b/addons/website_mail/static/src/css/website_mail.sass
deleted file mode 100644
index b648270ec04..00000000000
--- a/addons/website_mail/static/src/css/website_mail.sass
+++ /dev/null
@@ -1,33 +0,0 @@
-
-/* ---- FOLLOW ---- */
-a[data-follow]
- text-decoration: none !important
- z-index: 2
- .label
- padding: 5px 8px
- .css_unfollow, .css_follow, .css_unfollowed, .css_followed
- display: none
- &[data-follow='off']
- .css_unfollowed, &:hover .css_follow
- display: inline
- &:hover .css_unfollowed
- display: none
- &[data-follow='on']
- .css_followed, &:hover .css_unfollow
- display: inline
- &:hover .css_followed
- display: none
-
-[data-follow='off']:not(a)
- >:not([data-follow])
- opacity: 0.5
-[data-follow]:not(a)
- position: relative
- overflow: visible
- >[data-follow]
- position: absolute
- right: -6px
- top: -10px
- display: none
- /*&:hover > [data-follow]*/
- /* display: block*/
diff --git a/addons/website_mail/static/src/js/website_mail.js b/addons/website_mail/static/src/js/website_mail.js
index d0ce8276308..cfd3e16d1ec 100644
--- a/addons/website_mail/static/src/js/website_mail.js
+++ b/addons/website_mail/static/src/js/website_mail.js
@@ -1,27 +1,26 @@
$(document).ready(function () {
- /* ----- FOLLOWING STUFF ---- */
- $('[data-follow]:has([data-follow])').each(function () {
- var $pub = $("[data-follow]", this);
- if($pub.size())
- $(this).attr("data-follow", $pub.attr("data-follow"));
- else
- $(this).removeAttr("data-follow");
- });
-
- $(document).on('click', '.js_follow', function (ev) {
+ $(document).on('click', '.js_follow_btn', function (ev) {
ev.preventDefault();
- var $data = $(":first", this).parents("[data-follow]");
- var $email = $data.first().siblings(".js_follow_email");
- var message_is_follower = $data.first().attr("data-follow");
+
+ var self = this;
+ var $data = $(this).parents("div.js_follow");
+ var $email = $(".js_follow_email", $data);
+ var message_is_follower = $data.attr("data-follow");
$data.attr("data-follow", message_is_follower == 'off' ? 'on' : 'off');
+
openerp.jsonRpc('/website_mail/follow', 'call', {
- 'id': $(this).data('id'),
- 'object': $(this).data('object'),
+ 'id': $data.data('id'),
+ 'object': $data.data('object'),
'message_is_follower': message_is_follower,
'email': $email && $email.val() || false,
}).then(function (result) {
- $data.attr("data-follow", + result ? 'on' : 'off');
+ if (result) {
+ $data.html('<div class="alert alert-success mb0">Thanks for your subscription!</div>')
+ } else {
+ $data.attr("data-follow", + result ? 'on' : 'off');
+ $(self).text('Subscribe')
+ }
});
});
diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml
index d7e8008c89b..f1b3e996eab 100644
--- a/addons/website_mail/views/website_mail.xml
+++ b/addons/website_mail/views/website_mail.xml
@@ -3,28 +3,24 @@
<data>
<template id="follow">
- <div name="follow" t-if="editable">
- <a href="#" t-att-data-id="object.id"
- t-att-data-object="object._name"
- t-att-data-follow="object.id and object.message_is_follower and 'on' or 'off'"
- class="pull-right js_follow" t-ignore="true">
- <span t-attf-class="label label-success css_follow">Follow</span>
- <span t-attf-class="label label-danger css_unfollow">Unfollow</span>
- <span t-attf-class="label label-success css_followed">Following</span>
- <span t-attf-class="label label-danger css_unfollowed">Not Following</span>
- </a>
+ <div class="input-group js_follow" t-att-data-id="object.id"
+ t-att-data-object="object._name"
+ t-att-data-follow="object.id and object.message_is_follower and 'on' or 'off'">
<input type="email" name="email"
- class="js_follow_email css_unfollowed_email"
- t-att-value="email"
- t-att-placeholder="email or 'Email Address'"/>
+ class="js_follow_email form-control"
+ t-att-value="email or ''"
+ placeholder="your email..."/>
+ <span class="input-group-btn">
+ <button href="#"
+ class="btn btn-default js_follow_btn">
+ <t t-if="object.message_is_follower">Unsubscribe</t>
+ <t t-if="not object.message_is_follower">Subscribe</t>
+ </button>
+ </span>
</div>
</template>
<template id="website.layout" name="Mail customization" inherit_id="website.layout">
- <!-- Load stylesheets before scripts to avoid blocking -->
- <xpath expr="//head/link" position="after">
- <link rel='stylesheet' href='/website_mail/static/src/css/website_mail.css'/>
- </xpath>
<xpath expr="//head" position="inside">
<script type="text/javascript" src="/website_mail/static/src/js/website_mail.js"></script>
</xpath>