merge trunk
bzr revid: nicolas.vanhoren@openerp.com-20120726101422-2607vesxr52z3t1j
This commit is contained in:
commit
547e281f6f
|
@ -194,8 +194,8 @@ class WebClient(openerpweb.Controller):
|
|||
if mods is not None:
|
||||
path += '?mods=' + mods
|
||||
return [path]
|
||||
# old code to force cache reloading
|
||||
#return ['%s?debug=%s' % (wp, os.path.getmtime(fp)) for fp, wp in self.manifest_glob(req, mods, extension)]
|
||||
# old code to force cache reloading, this really works, sorry niv but we stop wasting time
|
||||
return ['%s?debug=%s' % (wp, os.path.getmtime(fp)) for fp, wp in self.manifest_glob(req, mods, extension)]
|
||||
return [el[1] for el in self.manifest_glob(req, mods, extension)]
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
|
|
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-25 04:52+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-26 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 15679)\n"
|
||||
|
||||
#. openerp-web
|
||||
|
|
|
@ -20,6 +20,50 @@
|
|||
font-style: normal;
|
||||
}
|
||||
|
||||
@-moz-keyframes bounce {
|
||||
0% {
|
||||
-moz-transform: scale(0);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
50% {
|
||||
-moz-transform: scale(1.3);
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
75% {
|
||||
-moz-transform: scale(0.9);
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes bounce {
|
||||
0% {
|
||||
-webkit-transform: scale(0);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: scale(1.3);
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
75% {
|
||||
-webkit-transform: scale(0.9);
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.openerp.openerp_webclient_container {
|
||||
height: 100%;
|
||||
position: relative;
|
||||
|
@ -186,6 +230,11 @@
|
|||
.openerp .ui-menu .ui-menu-item a.ui-state-active {
|
||||
background: #f0f0fa;
|
||||
}
|
||||
.openerp div.ui-widget-overlay {
|
||||
background: black;
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3;
|
||||
}
|
||||
.openerp.ui-dialog {
|
||||
display: none;
|
||||
padding: 6px;
|
||||
|
@ -497,6 +546,10 @@
|
|||
.openerp .oe_webclient .oe_star_on {
|
||||
color: gold;
|
||||
}
|
||||
.openerp .oe_bounce {
|
||||
-moz-animation: bounce 0.4s linear;
|
||||
-webkit-animation: bounce 0.4s linear;
|
||||
}
|
||||
.openerp .oe_tag {
|
||||
border-radius: 2px;
|
||||
-webkit-box-sizing: border-box;
|
||||
|
@ -2363,6 +2416,58 @@
|
|||
.openerp .oe_list_content .numeric input {
|
||||
text-align: right;
|
||||
}
|
||||
.openerp .tree_header {
|
||||
background-color: #f0f0f0;
|
||||
border-bottom: 1px solid #cacaca;
|
||||
color: #4c4c4c;
|
||||
padding: 5px;
|
||||
height: 25px;
|
||||
}
|
||||
.openerp .tree_header button {
|
||||
float: right;
|
||||
height: 27px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.openerp .oe-treeview-table {
|
||||
width: 100%;
|
||||
background-color: white;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.openerp .oe-treeview-table th {
|
||||
padding: 10px;
|
||||
color: #4c4c4c;
|
||||
font-weight: bold;
|
||||
background-color: #f0f0f0;
|
||||
border-bottom: 2px solid #cacaca;
|
||||
}
|
||||
.openerp .oe-treeview-table .treeview-tr, .openerp .oe-treeview-table .treeview-td {
|
||||
cursor: pointer;
|
||||
border-right: 1px dotted #afafb6;
|
||||
vertical-align: top;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #cfcccc;
|
||||
}
|
||||
.openerp .oe-treeview-table tr:hover {
|
||||
background-color: #e0e0f8;
|
||||
}
|
||||
.openerp .oe-treeview-table .oe-number {
|
||||
text-align: right !important;
|
||||
}
|
||||
.openerp .oe-treeview-table span {
|
||||
font-size: 90%;
|
||||
font-weight: normal;
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
}
|
||||
.openerp .oe-treeview-table .treeview-tr.oe-treeview-first {
|
||||
background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat;
|
||||
}
|
||||
.openerp .oe-treeview-table .oe_open .treeview-tr.oe-treeview-first {
|
||||
background-image: url(/web/static/src/img/collapse.gif);
|
||||
}
|
||||
.openerp .oe-treeview-table .treeview-tr.oe-treeview-first span, .openerp .oe-treeview-table .treeview-td.oe-treeview-first span {
|
||||
margin-left: 16px;
|
||||
}
|
||||
.openerp .oe_trad_field.touched {
|
||||
border: 1px solid green !important;
|
||||
}
|
||||
|
@ -2428,59 +2533,6 @@
|
|||
color: #333333;
|
||||
}
|
||||
|
||||
.openerp .tree_header {
|
||||
background-color: #f0f0f0;
|
||||
border-bottom: 1px solid #cacaca;
|
||||
color: #4c4c4c;
|
||||
padding: 5px;
|
||||
height: 25px;
|
||||
}
|
||||
.openerp .tree_header button {
|
||||
float: right;
|
||||
height: 27px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.openerp .oe-treeview-table {
|
||||
width: 100%;
|
||||
background-color: white;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.openerp .oe-treeview-table th {
|
||||
padding: 10px;
|
||||
color: #4c4c4c;
|
||||
font-weight: bold;
|
||||
background-color: #f0f0f0;
|
||||
border-bottom: 2px solid #cacaca;
|
||||
}
|
||||
.openerp .oe-treeview-table .treeview-tr, .openerp .oe-treeview-table .treeview-td {
|
||||
cursor: pointer;
|
||||
border-right: 1px dotted #afafb6;
|
||||
vertical-align: top;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #cfcccc;
|
||||
}
|
||||
.openerp .oe-treeview-table tr:hover {
|
||||
background-color: #e0e0f8;
|
||||
}
|
||||
.openerp .oe-treeview-table .oe-number {
|
||||
text-align: right !important;
|
||||
}
|
||||
.openerp .oe-treeview-table span {
|
||||
font-size: 90%;
|
||||
font-weight: normal;
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
}
|
||||
.openerp .oe-treeview-table .treeview-tr.oe-treeview-first {
|
||||
background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat;
|
||||
}
|
||||
.openerp .oe-treeview-table .oe_open .treeview-tr.oe-treeview-first {
|
||||
background-image: url(/web/static/src/img/collapse.gif);
|
||||
}
|
||||
.openerp .oe-treeview-table .treeview-tr.oe-treeview-first span, .openerp .oe-treeview-table .treeview-td.oe-treeview-first span {
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.kitten-mode-activated {
|
||||
background-image: url(http://placekitten.com/g/1365/769);
|
||||
background-size: cover;
|
||||
|
@ -2489,9 +2541,3 @@
|
|||
.kitten-mode-activated > * {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
div.ui-widget-overlay {
|
||||
background: black;
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
|
|
@ -97,6 +97,35 @@ $sheet-max-width: 860px
|
|||
color: $color
|
||||
|
||||
// }}}
|
||||
// CSS animation bounces {{{
|
||||
@-moz-keyframes bounce
|
||||
0%
|
||||
-moz-transform: scale(0)
|
||||
opacity: 0
|
||||
50%
|
||||
-moz-transform: scale(1.3)
|
||||
opacity: 0.4
|
||||
75%
|
||||
-moz-transform: scale(0.9)
|
||||
opacity: 0.7
|
||||
100%
|
||||
-moz-transform: scale(1)
|
||||
opacity: 1
|
||||
|
||||
@-webkit-keyframes bounce
|
||||
0%
|
||||
-webkit-transform: scale(0)
|
||||
opacity: 0
|
||||
50%
|
||||
-webkit-transform: scale(1.3)
|
||||
opacity: 0.4
|
||||
75%
|
||||
-webkit-transform: scale(0.9)
|
||||
opacity: 0.7
|
||||
100%
|
||||
-webkit-transform: scale(1)
|
||||
opacity: 1
|
||||
// }}}
|
||||
|
||||
.openerp.openerp_webclient_container
|
||||
height: 100%
|
||||
|
@ -200,7 +229,9 @@ $sheet-max-width: 860px
|
|||
width: auto
|
||||
a.ui-state-active
|
||||
background: #f0f0fa
|
||||
|
||||
div.ui-widget-overlay
|
||||
background: black
|
||||
@include opacity(0.3)
|
||||
// Modal box
|
||||
&.ui-dialog
|
||||
display: none
|
||||
|
@ -390,6 +421,9 @@ $sheet-max-width: 860px
|
|||
text-decoration: none
|
||||
.oe_star_on
|
||||
color: gold
|
||||
.oe_bounce
|
||||
-moz-animation: bounce .40s linear
|
||||
-webkit-animation: bounce .40s linear
|
||||
// }}}
|
||||
// Tags (for many2many tags, among others) {{{
|
||||
.oe_tag
|
||||
|
@ -1846,6 +1880,49 @@ $sheet-max-width: 860px
|
|||
input
|
||||
text-align: right
|
||||
// }}}
|
||||
// Tree view {{{
|
||||
.tree_header
|
||||
background-color: #f0f0f0
|
||||
border-bottom: 1px solid #cacaca
|
||||
color: #4c4c4c
|
||||
padding: 5px
|
||||
height: 25px
|
||||
button
|
||||
float: right
|
||||
height: 27px
|
||||
margin-right: 5px
|
||||
.oe-treeview-table
|
||||
width: 100%
|
||||
background-color: white
|
||||
border-spacing: 0
|
||||
th
|
||||
padding: 10px
|
||||
color: #4c4c4c
|
||||
font-weight: bold
|
||||
background-color: #f0f0f0
|
||||
border-bottom: 2px solid #cacaca
|
||||
.treeview-tr, .treeview-td
|
||||
cursor: pointer
|
||||
border-right: 1px dotted #afafb6
|
||||
vertical-align: top
|
||||
text-align: left
|
||||
border-bottom: 1px solid #cfcccc
|
||||
tr:hover
|
||||
background-color: #e0e0f8
|
||||
.oe-number
|
||||
text-align: right !important
|
||||
span
|
||||
font-size: 90%
|
||||
font-weight: normal
|
||||
white-space: nowrap
|
||||
display: block
|
||||
.treeview-tr.oe-treeview-first
|
||||
background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat
|
||||
.oe_open .treeview-tr.oe-treeview-first
|
||||
background-image: url(/web/static/src/img/collapse.gif)
|
||||
.treeview-tr.oe-treeview-first span, .treeview-td.oe-treeview-first span
|
||||
margin-left: 16px
|
||||
// }}}
|
||||
// Translation {{{
|
||||
.oe_trad_field.touched
|
||||
border: 1px solid green !important
|
||||
|
@ -1903,49 +1980,6 @@ $sheet-max-width: 860px
|
|||
float: right
|
||||
color: #333
|
||||
// }}}
|
||||
//Tree view
|
||||
.openerp
|
||||
.tree_header
|
||||
background-color: #f0f0f0
|
||||
border-bottom: 1px solid #cacaca
|
||||
color: #4c4c4c
|
||||
padding: 5px
|
||||
height: 25px
|
||||
button
|
||||
float: right
|
||||
height: 27px
|
||||
margin-right: 5px
|
||||
.oe-treeview-table
|
||||
width: 100%
|
||||
background-color: white
|
||||
border-spacing: 0
|
||||
th
|
||||
padding: 10px
|
||||
color: #4c4c4c
|
||||
font-weight: bold
|
||||
background-color: #f0f0f0
|
||||
border-bottom: 2px solid #cacaca
|
||||
.treeview-tr, .treeview-td
|
||||
cursor: pointer
|
||||
border-right: 1px dotted #afafb6
|
||||
vertical-align: top
|
||||
text-align: left
|
||||
border-bottom: 1px solid #cfcccc
|
||||
tr:hover
|
||||
background-color: #e0e0f8
|
||||
.oe-number
|
||||
text-align: right !important
|
||||
span
|
||||
font-size: 90%
|
||||
font-weight: normal
|
||||
white-space: nowrap
|
||||
display: block
|
||||
.treeview-tr.oe-treeview-first
|
||||
background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat
|
||||
.oe_open .treeview-tr.oe-treeview-first
|
||||
background-image: url(/web/static/src/img/collapse.gif)
|
||||
.treeview-tr.oe-treeview-first span, .treeview-td.oe-treeview-first span
|
||||
margin-left: 16px
|
||||
// Kitten Mode {{{
|
||||
.kitten-mode-activated
|
||||
background-image: url(http://placekitten.com/g/1365/769)
|
||||
|
@ -1956,8 +1990,6 @@ $sheet-max-width: 860px
|
|||
|
||||
// }}}
|
||||
|
||||
div.ui-widget-overlay
|
||||
background: black
|
||||
@include opacity(0.3)
|
||||
|
||||
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers <afile> > "%:p:r.css"
|
||||
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
|
||||
|
|
|
@ -387,8 +387,16 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
|
|||
var fields = $(form).serializeArray();
|
||||
self.rpc("/web/database/create", {'fields': fields}, function(result) {
|
||||
var form_obj = self.to_object(fields);
|
||||
self.getParent().do_login( form_obj['db_name'], 'admin', form_obj['create_admin_pwd']);
|
||||
self.destroy();
|
||||
var client_action = {
|
||||
type: 'ir.actions.client',
|
||||
tag: 'login',
|
||||
params: {
|
||||
'db': form_obj['db_name'],
|
||||
'login': 'admin',
|
||||
'password': form_obj['create_admin_pwd'],
|
||||
},
|
||||
};
|
||||
self.do_action(client_action);
|
||||
});
|
||||
|
||||
},
|
||||
|
@ -473,19 +481,22 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
|
|||
});
|
||||
},
|
||||
do_exit: function () {
|
||||
this.do_action("login");
|
||||
}
|
||||
});
|
||||
instance.web.client_actions.add("database_manager", "instance.web.DatabaseManager");
|
||||
|
||||
instance.web.Login = instance.web.Widget.extend({
|
||||
template: "Login",
|
||||
remember_credentials: true,
|
||||
_db_list: null,
|
||||
|
||||
init: function(parent) {
|
||||
init: function(parent, params) {
|
||||
this._super(parent);
|
||||
this.has_local_storage = typeof(localStorage) != 'undefined';
|
||||
this.selected_db = null;
|
||||
this.selected_login = null;
|
||||
this.params = params;
|
||||
|
||||
if (this.has_local_storage && this.remember_credentials) {
|
||||
this.selected_db = localStorage.getItem('last_db_login_success');
|
||||
|
@ -495,26 +506,17 @@ instance.web.Login = instance.web.Widget.extend({
|
|||
}
|
||||
}
|
||||
},
|
||||
open_db_manager: function(){
|
||||
var self = this;
|
||||
self.$element.find('.oe_login_bottom').hide();
|
||||
self.$element.find('.oe_login_pane').hide();
|
||||
self.databasemanager = new instance.web.DatabaseManager(self);
|
||||
self.databasemanager.appendTo(self.$element);
|
||||
self.databasemanager.do_exit.add_last(function() {
|
||||
self.databasemanager.destroy();
|
||||
self.$element.find('.oe_login_bottom').show();
|
||||
self.$element.find('.oe_login_pane').show();
|
||||
self.load_db_list(true).then(self.on_db_list_loaded);
|
||||
});
|
||||
},
|
||||
start: function() {
|
||||
var self = this;
|
||||
self.$element.find("form").submit(self.on_submit);
|
||||
self.$element.find('.oe_login_manage_db').click(function() {
|
||||
self.open_db_manager();
|
||||
self.do_action("database_manager");
|
||||
});
|
||||
return self.load_db_list().then(self.on_db_list_loaded).then(function() {
|
||||
if(self.params) {
|
||||
self.do_login(self.params.db, self.params.login, self.params.password);
|
||||
}
|
||||
});
|
||||
return self.load_db_list().then(self.on_db_list_loaded);
|
||||
},
|
||||
load_db_list: function (force) {
|
||||
var d = $.when(), self = this;
|
||||
|
@ -535,7 +537,7 @@ instance.web.Login = instance.web.Widget.extend({
|
|||
var dbdiv = this.$element.find('div.oe_login_dbpane');
|
||||
this.$element.find("[name=db]").replaceWith(instance.web.qweb.render('Login.dblist', { db_list: list, selected_db: this.selected_db}));
|
||||
if(list.length === 0) {
|
||||
self.open_db_manager();
|
||||
this.do_action("database_manager");
|
||||
} else if(list && list.length === 1) {
|
||||
dbdiv.hide();
|
||||
} else {
|
||||
|
@ -582,13 +584,24 @@ instance.web.Login = instance.web.Widget.extend({
|
|||
localStorage.setItem('last_password_login_success', '');
|
||||
}
|
||||
}
|
||||
self.trigger("login");
|
||||
self.do_action("login_sucessful");
|
||||
},function () {
|
||||
self.$(".oe_login_pane").fadeIn("fast");
|
||||
self.$element.addClass("oe_login_invalid");
|
||||
});
|
||||
}
|
||||
});
|
||||
instance.web.client_actions.add("login", "instance.web.Login");
|
||||
|
||||
instance.web.LoginSuccessful = instance.web.Widget.extend({
|
||||
init: function(parent) {
|
||||
this._super(parent);
|
||||
},
|
||||
start: function() {
|
||||
this.getParent().getParent().show_application();
|
||||
},
|
||||
});
|
||||
instance.web.client_actions.add("login_sucessful", "instance.web.LoginSuccessful");
|
||||
|
||||
instance.web.Menu = instance.web.Widget.extend({
|
||||
template: 'Menu',
|
||||
|
@ -964,19 +977,16 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
data: {debug: file + ':' + line}
|
||||
});
|
||||
};
|
||||
// TODO: deprecate and use login client action
|
||||
self.login = new instance.web.Login(self);
|
||||
self.login.on("login",self,self.show_application);
|
||||
},
|
||||
show_login: function() {
|
||||
var self = this;
|
||||
self.$('.oe_topbar').hide();
|
||||
self.login.appendTo(self.$element);
|
||||
self.action_manager.do_action("login");
|
||||
//self.login.appendTo(self.$element);
|
||||
},
|
||||
show_application: function() {
|
||||
var self = this;
|
||||
self.$('.oe_topbar').show();
|
||||
self.login.$element.hide();
|
||||
self.menu = new instance.web.Menu(self);
|
||||
self.menu.replace(this.$element.find('.oe_menu_placeholder'));
|
||||
self.menu.on('menu_click', this, this.on_menu_action);
|
||||
|
@ -1057,6 +1067,7 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
},
|
||||
do_push_state: function(state) {
|
||||
this.set_title(state.title);
|
||||
delete state.title;
|
||||
var url = '#' + $.param(state);
|
||||
this._current_state = _.clone(state);
|
||||
$.bbq.pushState(url);
|
||||
|
@ -1083,10 +1094,13 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
}
|
||||
},
|
||||
set_content_full_screen: function(fullscreen) {
|
||||
if (fullscreen)
|
||||
if (fullscreen) {
|
||||
$(".oe_webclient", this.$element).addClass("oe_content_full_screen");
|
||||
else
|
||||
$("body").css({'overflow-y':'hidden'});
|
||||
} else {
|
||||
$(".oe_webclient", this.$element).removeClass("oe_content_full_screen");
|
||||
$("body").css({'overflow-y':'scroll'});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -163,6 +163,15 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
{ label: _t('Set Default'), callback: function (item) { self.open_defaults_dialog(); } },
|
||||
]);
|
||||
}
|
||||
|
||||
// Add bounce effect on button 'Edit' when click on readonly page view.
|
||||
this.$element.find(".oe_form_field, .oe_form_group_cell").on('click', function (e) {
|
||||
if(self.get("actual_mode") == "view") {
|
||||
var $button = self.options.$buttons.find(".oe_form_button_edit");
|
||||
$button.wrap('<div>').css('margin-right','4px').addClass('oe_left oe_bounce');
|
||||
}
|
||||
});
|
||||
|
||||
this.has_been_loaded.resolve();
|
||||
return $.when();
|
||||
},
|
||||
|
@ -1673,6 +1682,9 @@ instance.web.form.WidgetButton = instance.web.form.FormWidget.extend({
|
|||
// TODO fme: provide enter key binding to widgets
|
||||
this.view.default_focus_button = this;
|
||||
}
|
||||
if (this.node.attrs.icon && (! /\//.test(this.node.attrs.icon))) {
|
||||
this.node.attrs.icon = '/web/static/src/img/icons/' + this.node.attrs.icon + '.png';
|
||||
}
|
||||
this.view.on('view_content_has_changed', this, this.check_disable);
|
||||
},
|
||||
start: function() {
|
||||
|
|
|
@ -357,6 +357,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
|
|||
{ label: _t('Delete'), callback: this.do_delete_selected },
|
||||
]);
|
||||
this.sidebar.add_toolbar(this.fields_view.toolbar);
|
||||
this.sidebar.$element.hide();
|
||||
}
|
||||
},
|
||||
/**
|
||||
|
@ -493,9 +494,6 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
|
|||
},
|
||||
do_show: function () {
|
||||
this._super();
|
||||
if (this.sidebar) {
|
||||
this.sidebar.$element.show();
|
||||
}
|
||||
if (this.$buttons) {
|
||||
this.$buttons.show();
|
||||
}
|
||||
|
|
|
@ -120,7 +120,9 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
if (this.getParent() && this.getParent().do_push_state) {
|
||||
if (this.inner_action) {
|
||||
state['title'] = this.inner_action.name;
|
||||
if(this.inner_action.type == 'ir.actions.act_window') {
|
||||
state['model'] = this.inner_action.res_model;
|
||||
}
|
||||
if (this.inner_action.id) {
|
||||
state['action_id'] = this.inner_action.id;
|
||||
}
|
||||
|
@ -178,7 +180,10 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
});
|
||||
},
|
||||
do_action: function(action, on_close) {
|
||||
if (_.isNumber(action) || _.isString(action)) {
|
||||
if (_.isString(action) && instance.web.client_actions.contains(action)) {
|
||||
var action_client = { type: "ir.actions.client", tag: action };
|
||||
return this.do_action(action_client);
|
||||
} else if (_.isNumber(action) || _.isString(action)) {
|
||||
var self = this;
|
||||
return self.rpc("/web/action/load", { action_id: action }, function(result) {
|
||||
self.do_action(result.result, on_close);
|
||||
|
@ -270,6 +275,8 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
widget: this.inner_widget,
|
||||
title: action.name
|
||||
});
|
||||
this.inner_action = action;
|
||||
this.do_push_state({});
|
||||
this.inner_widget.appendTo(this.$element);
|
||||
},
|
||||
ir_actions_report_xml: function(action, on_closed) {
|
||||
|
|
|
@ -653,9 +653,7 @@
|
|||
t-att-style="view.style_for(record)">
|
||||
<t t-set="asData" t-value="record.toForm().data"/>
|
||||
<t t-foreach="columns" t-as="column">
|
||||
<td t-if="column.meta">
|
||||
|
||||
</td>
|
||||
<td t-if="column.meta"> </td>
|
||||
</t>
|
||||
<th t-if="options.selectable" class="oe_list_record_selector" width="1">
|
||||
<t t-set="checked" t-value="options.select_view_id == record.get('id') ? 'checked' : null"/>
|
||||
|
@ -674,7 +672,6 @@
|
|||
<button type="button" name="delete" class="oe_i">d</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<t t-extend="ListView.buttons">
|
||||
<t t-jquery="button.oe_list_add" t-operation="after">
|
||||
<button class="oe_button oe_list_save oe_highlight"
|
||||
|
@ -684,6 +681,15 @@
|
|||
<a href="#" class="oe_bold oe_list_discard">discard</a>
|
||||
</t>
|
||||
</t>
|
||||
<t t-extend="ListView.row">
|
||||
<!-- adds back padding to row being rendered after edition, if necessary
|
||||
(if not deletable add back padding), otherwise the row being added is
|
||||
missing columns
|
||||
-->
|
||||
<t t-jquery="> :last" t-operation="after">
|
||||
<td t-if="edited and !options.deletable" class="oe-listview-padding"/>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
<t t-name="FormView">
|
||||
<div class="oe_formview">
|
||||
|
@ -976,7 +982,6 @@
|
|||
</t>
|
||||
</span>
|
||||
</t>
|
||||
<!-- Collection of m2m tags -->
|
||||
<t t-name="FieldMany2ManyTags">
|
||||
<div class="oe_form_field oe_tags" t-att-style="widget.node.attrs.style">
|
||||
<t t-if="! widget.get('effective_readonly')">
|
||||
|
@ -985,7 +990,6 @@
|
|||
</t>
|
||||
</div>
|
||||
</t>
|
||||
<!-- Individual m2m tag element -->
|
||||
<t t-name="FieldMany2ManyTag">
|
||||
<t t-set="i" t-value="0"/>
|
||||
<t t-foreach="elements" t-as="el">
|
||||
|
@ -1133,7 +1137,7 @@
|
|||
t-att-style="widget.node.attrs.style"
|
||||
t-att-tabindex="widget.node.attrs.tabindex"
|
||||
t-att-autofocus="widget.node.attrs.autofocus">
|
||||
<img t-if="widget.node.attrs.icon" t-att-src="_s + '/web/static/src/img/icons/' + widget.node.attrs.icon + '.png'" width="16" height="16"/>
|
||||
<img t-if="widget.node.attrs.icon" t-att-src="_s + widget.node.attrs.icon" width="16" height="16"/>
|
||||
<span t-if="widget.string"><t t-esc="widget.string"/></span>
|
||||
</button>
|
||||
</t>
|
||||
|
@ -1191,6 +1195,41 @@
|
|||
</table>
|
||||
</t>
|
||||
|
||||
<t t-name="AbstractFormPopup.render">
|
||||
<div>
|
||||
<table style="width:100%">
|
||||
<tr style="width:100%">
|
||||
<td style="width:100%">
|
||||
<div class="oe_popup_search" style="width:100%"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="width:100%">
|
||||
<td style="width:100%">
|
||||
<div class="oe_popup_list" style="width:100%"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="oe_popup_form" style="width:100%"></div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="SelectCreatePopup.search.buttons">
|
||||
<t t-if="! widget.options.disable_multiple_selection">
|
||||
<button type="button" class="oe_button oe_selectcreatepopup-search-select" disabled="disabled">Select</button>
|
||||
or
|
||||
</t>
|
||||
<a class="oe_button oe_selectcreatepopup-search-close oe_bold oe_form_button_cancel" href="javascript:void(0)">Cancel</a>
|
||||
</t>
|
||||
<t t-name="AbstractFormPopup.buttons">
|
||||
<t t-if="! multi_select">
|
||||
<button type="button" class="oe_button oe_abstractformpopup-form-save oe_highlight">Save</button>
|
||||
</t>
|
||||
<t t-if="multi_select">
|
||||
<button type="button" class="oe_button oe_abstractformpopup-form-save-new oe_highlight">Save & New</button>
|
||||
<button type="button" class="oe_button oe_abstractformpopup-form-save oe_highlight">Save & Close</button>
|
||||
</t>
|
||||
or <a class="oe_button oe_abstractformpopup-form-close oe_bold oe_form_button_cancel" href="javascript:void(0)">Discard</a>
|
||||
</t>
|
||||
|
||||
<t t-name="One2Many.viewmanager" t-extend="ViewManager">
|
||||
<t t-jquery=".oe-view-manager-header">
|
||||
this.attr('t-if', 'views.length != 1');
|
||||
|
@ -1243,7 +1282,6 @@
|
|||
<span t-name="SearchView.FacetView.Value" class="oe_facet_value">
|
||||
<t t-esc="widget.model.get('label')"/>
|
||||
</span>
|
||||
|
||||
<t t-name="SearchView.managed-filters">
|
||||
<option class="oe_search_filters_title" value="">Filters</option>
|
||||
<optgroup label="-- Filters --">
|
||||
|
@ -1268,7 +1306,6 @@
|
|||
<p>(Any existing filter with the same name will be replaced)</p>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="SearchView.render_lines">
|
||||
<table class="oe_search_render_line" border="0" cellspacing="0" cellpadding="0"
|
||||
t-foreach="lines" t-as="line">
|
||||
|
@ -1465,49 +1502,6 @@
|
|||
</t>
|
||||
</select>
|
||||
</t>
|
||||
<t t-name="AbstractFormPopup.render">
|
||||
<div>
|
||||
<table style="width:100%">
|
||||
<tr style="width:100%">
|
||||
<td style="width:100%">
|
||||
<div class="oe_popup_search" style="width:100%"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="width:100%">
|
||||
<td style="width:100%">
|
||||
<div class="oe_popup_list" style="width:100%"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="oe_popup_form" style="width:100%"></div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="SelectCreatePopup.search.buttons">
|
||||
<t t-if="! widget.options.disable_multiple_selection">
|
||||
<button type="button" class="oe_button oe_selectcreatepopup-search-select" disabled="disabled">Select</button>
|
||||
or
|
||||
</t>
|
||||
<a class="oe_button oe_selectcreatepopup-search-close oe_bold oe_form_button_cancel" href="javascript:void(0)">Cancel</a>
|
||||
</t>
|
||||
<t t-name="AbstractFormPopup.buttons">
|
||||
<t t-if="! multi_select">
|
||||
<button type="button" class="oe_button oe_abstractformpopup-form-save oe_highlight">Save</button>
|
||||
</t>
|
||||
<t t-if="multi_select">
|
||||
<button type="button" class="oe_button oe_abstractformpopup-form-save-new oe_highlight">Save & New</button>
|
||||
<button type="button" class="oe_button oe_abstractformpopup-form-save oe_highlight">Save & Close</button>
|
||||
</t>
|
||||
or <a class="oe_button oe_abstractformpopup-form-close oe_bold oe_form_button_cancel" href="javascript:void(0)">Cancel</a>
|
||||
</t>
|
||||
<t t-extend="ListView.row">
|
||||
<!-- adds back padding to row being rendered after edition, if necessary
|
||||
(if not deletable add back padding), otherwise the row being added is
|
||||
missing columns
|
||||
-->
|
||||
<t t-jquery="> :last" t-operation="after">
|
||||
<td t-if="edited and !options.deletable" class="oe-listview-padding"/>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
<t t-name="view_editor">
|
||||
<table class="oe_view_editor">
|
||||
|
@ -1572,6 +1566,7 @@
|
|||
<t t-name="vieweditor_boolean">
|
||||
<input type="checkbox" t-att-id="widget.name"/>
|
||||
</t>
|
||||
|
||||
<t t-name="ExportView">
|
||||
<a id="exportview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Export</a>
|
||||
</t>
|
||||
|
|
|
@ -420,6 +420,15 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
|
|||
self.quick.appendTo($(".oe_kanban_group_list_header", self.$records));
|
||||
self.quick.focus();
|
||||
});
|
||||
// Add bounce effect on image '+' of kanban header when click on empty space of kanban grouped column.
|
||||
var add_btn = this.$element.find('.oe_kanban_add');
|
||||
this.$records.click(function (ev) {
|
||||
if (ev.target == ev.currentTarget) {
|
||||
if (!self.state.folded) {
|
||||
add_btn.wrap('<div>').addClass('oe_bounce');
|
||||
}
|
||||
}
|
||||
});
|
||||
this.$records.find('.oe_kanban_show_more').click(this.do_show_more);
|
||||
if (this.state.folded) {
|
||||
this.do_toggle_fold();
|
||||
|
|
Loading…
Reference in New Issue