diff options
| author | Fabien Pinckaers <fp@openerp.com> | 2013-11-16 16:09:27 +0100 |
|---|---|---|
| committer | Fabien Pinckaers <fp@openerp.com> | 2013-11-16 16:09:27 +0100 |
| commit | ceb04895d36a1e7bda3f0eea0904ab923a746687 (patch) | |
| tree | c506dc4d19b80577b9f0022f7c5eb6e15fe31af1 | |
| parent | 1129cc5d39652f47c807dea358a03dbdf3c26087 (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.py | 2 | ||||
| -rw-r--r-- | addons/website/static/src/css/website.css | 43 | ||||
| -rw-r--r-- | addons/website/static/src/css/website.sass | 38 | ||||
| -rw-r--r-- | addons/website/static/src/js/website.js | 39 | ||||
| -rw-r--r-- | addons/website/views/website_templates.xml | 16 | ||||
| -rw-r--r-- | addons/website_blog/views/website_blog_templates.xml | 5 | ||||
| -rw-r--r-- | addons/website_mail/static/src/css/Makefile | 2 | ||||
| -rw-r--r-- | addons/website_mail/static/src/css/website_mail.css | 40 | ||||
| -rw-r--r-- | addons/website_mail/static/src/css/website_mail.sass | 33 | ||||
| -rw-r--r-- | addons/website_mail/static/src/js/website_mail.js | 31 | ||||
| -rw-r--r-- | addons/website_mail/views/website_mail.xml | 30 |
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&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> |
