[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
This commit is contained in:
parent
1129cc5d39
commit
ceb04895d3
|
@ -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):
|
||||
|
|
|
@ -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 {
|
||||
.css_unpublish, .css_publish {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.dropdown .css_unpublish, .dropdown .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);
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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'));
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
sass:
|
||||
sass -t expanded --unix-newlines --watch website_mail.sass:website_mail.css&
|
|
@ -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;
|
||||
}
|
|
@ -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*/
|
|
@ -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')
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue