[Merge]with trunk
bzr revid: mba@tinyerp.com-20140415093106-xb91mel6e85mjwel
This commit is contained in:
commit
16e024512d
|
@ -127,7 +127,7 @@
|
|||
font-weight: bold;
|
||||
font-size: inherit;
|
||||
}
|
||||
.openerp a.button:link, .openerp a.button:visited, .openerp button, .openerp .oe_button, .openerp input[type='submit'], .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
|
||||
.openerp a.button:link, .openerp a.button:visited, .openerp button, .openerp .oe_button, .openerp input[type='submit'] {
|
||||
display: inline-block;
|
||||
border: 1px solid rgba(0, 0, 0, 0.4);
|
||||
color: #4c4c4c;
|
||||
|
@ -152,7 +152,7 @@
|
|||
-webkit-font-smoothing: antialiased;
|
||||
outline: none;
|
||||
}
|
||||
.openerp a.button:hover, .openerp button:hover, .openerp .oe_button:hover, .openerp input[type='submit']:hover, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-hover {
|
||||
.openerp a.button:hover, .openerp button:hover, .openerp .oe_button:hover, .openerp input[type='submit']:hover {
|
||||
background-color: #ececec;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
|
||||
background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
|
||||
|
@ -163,7 +163,7 @@
|
|||
cursor: pointer;
|
||||
background-position: 0;
|
||||
}
|
||||
.openerp a.button:focus, .openerp button:focus, .openerp .oe_button:focus, .openerp input[type='submit']:focus, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-focus {
|
||||
.openerp a.button:focus, .openerp button:focus, .openerp .oe_button:focus, .openerp input[type='submit']:focus {
|
||||
border: 1px solid #80bfff;
|
||||
background-position: 0;
|
||||
background-color: #ececec;
|
||||
|
@ -177,7 +177,7 @@
|
|||
-webkit-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
|
||||
box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
|
||||
}
|
||||
.openerp a.button:active, .openerp a.button.active, .openerp button:active, .openerp .oe_button:active, .openerp .oe_button.active, .openerp input[type='submit']:active, .openerp input[type='submit'].active, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-active {
|
||||
.openerp a.button:active, .openerp a.button.active, .openerp button:active, .openerp .oe_button:active, .openerp .oe_button.active, .openerp input[type='submit']:active, .openerp input[type='submit'].active {
|
||||
background-color: #ececec;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
|
||||
background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
|
||||
|
@ -212,148 +212,6 @@
|
|||
.openerp .ui-tabs {
|
||||
position: static;
|
||||
}
|
||||
.openerp.ui-dialog {
|
||||
display: none;
|
||||
height: auto !important;
|
||||
padding: 6px;
|
||||
background-color: rgba(60, 60, 60, 0.7);
|
||||
border: 1px solid;
|
||||
border-color: #888888 #555555 #444444;
|
||||
-moz-border-radius: 8px;
|
||||
-webkit-border-radius: 8px;
|
||||
border-radius: 8px;
|
||||
-moz-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
|
||||
-webkit-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
|
||||
box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
|
||||
-webkit-background-clip: padding-box;
|
||||
-moz-background-clip: padding-box;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-content {
|
||||
padding: 0;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-titlebar, .openerp.ui-dialog .ui-dialog-content, .openerp.ui-dialog .ui-dialog-buttonpane {
|
||||
padding: 16px;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-titlebar {
|
||||
border-top: none;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
border-bottom: 1px solid #cacaca;
|
||||
-moz-border-radius: 2px 2px 0 0;
|
||||
-webkit-border-radius: 2px 2px 0 0;
|
||||
border-radius: 2px 2px 0 0;
|
||||
background-color: #ededed;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
|
||||
background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-titlebar .ui-dialog-title {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-content {
|
||||
background: white;
|
||||
width: auto !important;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-buttonpane {
|
||||
border-top: 1px solid #e0e0e0;
|
||||
background: #f5f7f9;
|
||||
margin: 0;
|
||||
-moz-border-radius: 0 0 2px 2px;
|
||||
-webkit-border-radius: 0 0 2px 2px;
|
||||
border-radius: 0 0 2px 2px;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-buttonpane button {
|
||||
margin: 0 4px 0 0;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
||||
float: left;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
|
||||
margin-right: 4px;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-titlebar-close {
|
||||
padding: 0;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-titlebar-close .ui-icon-closethick {
|
||||
display: none;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-titlebar-close:before {
|
||||
content: "×";
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
line-height: 16px;
|
||||
color: black;
|
||||
text-shadow: 0 1px 0 white;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-titlebar-close:before:hover {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
}
|
||||
.openerp.ui-dialog .oe_about {
|
||||
background-color: white;
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
|
||||
-moz-border-radius: 0 0 2px 2px;
|
||||
-webkit-border-radius: 0 0 2px 2px;
|
||||
border-radius: 0 0 2px 2px;
|
||||
}
|
||||
.openerp.ui-dialog .oe_about a {
|
||||
color: #7c7bad;
|
||||
}
|
||||
.openerp.ui-dialog .oe_about a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.openerp.ui-dialog .oe_about a:focus {
|
||||
outline: none;
|
||||
}
|
||||
.openerp.ui-dialog .oe_about .oe_logo {
|
||||
margin-left: -6px;
|
||||
}
|
||||
.openerp.ui-dialog .oe_about .oe_bottom {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
text-shadow: 0 1px 1px #999999;
|
||||
background-color: #8a0e0e;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
|
||||
background-image: -webkit-linear-gradient(top, #b41616, #600606);
|
||||
background-image: -moz-linear-gradient(top, #b41616, #600606);
|
||||
background-image: -ms-linear-gradient(top, #b41616, #600606);
|
||||
background-image: -o-linear-gradient(top, #b41616, #600606);
|
||||
background-image: linear-gradient(to bottom, #b41616, #600606);
|
||||
color: #eeeeee;
|
||||
padding: 0 16px;
|
||||
-moz-border-radius: 0 0 2px 2px;
|
||||
-webkit-border-radius: 0 0 2px 2px;
|
||||
border-radius: 0 0 2px 2px;
|
||||
}
|
||||
.openerp.ui-dialog .oe_about .oe_bottom a {
|
||||
color: #eeeeee;
|
||||
}
|
||||
.openerp.ui-dialog.oe_act_window .ui-dialog-content {
|
||||
padding: 0px;
|
||||
}
|
||||
.openerp .modal-backdrop {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1040;
|
||||
background-color: black;
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3;
|
||||
}
|
||||
.openerp .oe_i {
|
||||
font-family: "mnmliconsRegular" !important;
|
||||
font-size: 21px;
|
||||
|
@ -1233,11 +1091,6 @@
|
|||
margin-left: -6px;
|
||||
}
|
||||
.openerp .oe_about .oe_bottom {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
text-shadow: 0 1px 1px #999999;
|
||||
background-color: #8a0e0e;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
|
||||
|
@ -3425,9 +3278,6 @@ body.oe_single_form .oe_single_form_container {
|
|||
.openerp_ie ul.oe_form_status li.oe_active > .arrow span, .openerp_ie ul.oe_form_status_clickable li.oe_active > .arrow span {
|
||||
background-color: #729fcf !important;
|
||||
}
|
||||
.openerp_ie .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#EFEFEF', endColorstr='#D8D8D8');
|
||||
}
|
||||
|
||||
@media print {
|
||||
.openerp {
|
||||
|
@ -3530,7 +3380,19 @@ body.oe_single_form .oe_single_form_container {
|
|||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.modal .modal-header button.close {
|
||||
border: none;
|
||||
background: none;
|
||||
padding: 1px;
|
||||
height: 18px;
|
||||
font-size: 20px;
|
||||
}
|
||||
.modal .modal-footer {
|
||||
text-align: left;
|
||||
}
|
||||
.modal .oe_act_window.modal-body{
|
||||
padding: 0;
|
||||
}
|
||||
input[type="radio"], input[type="checkbox"] {
|
||||
margin-right: 4px;
|
||||
margin-left: 4px;
|
||||
|
|
|
@ -218,7 +218,7 @@ $sheet-padding: 16px
|
|||
font-size: inherit
|
||||
// }}}
|
||||
// Button style {{{
|
||||
a.button:link, a.button:visited, button, .oe_button, input[type='submit'], .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button
|
||||
a.button:link, a.button:visited, button, .oe_button, input[type='submit']
|
||||
display: inline-block
|
||||
border: 1px solid rgba(0,0,0,0.4)
|
||||
color: #4c4c4c
|
||||
|
@ -233,18 +233,18 @@ $sheet-padding: 16px
|
|||
-webkit-font-smoothing: antialiased
|
||||
outline: none
|
||||
|
||||
a.button:hover, button:hover,.oe_button:hover, input[type='submit']:hover, .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-hover
|
||||
a.button:hover, button:hover,.oe_button:hover, input[type='submit']:hover
|
||||
@include vertical-gradient(#f6f6f6, #e3e3e3)
|
||||
cursor: pointer
|
||||
background-position: 0
|
||||
|
||||
a.button:focus, button:focus, .oe_button:focus, input[type='submit']:focus, .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-focus
|
||||
a.button:focus, button:focus, .oe_button:focus, input[type='submit']:focus
|
||||
border: 1px solid #80bfff
|
||||
background-position: 0
|
||||
@include vertical-gradient(#f6f6f6, #e3e3e3)
|
||||
@include box-shadow((0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, .8) inset))
|
||||
|
||||
a.button:active, a.button.active, button:active, .oe_button:active, .oe_button.active, input[type='submit']:active, input[type='submit'].active, .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-active
|
||||
a.button:active, a.button.active, button:active, .oe_button:active, .oe_button.active, input[type='submit']:active, input[type='submit'].active
|
||||
@include vertical-gradient(#e3e3e3, #f6f6f6)
|
||||
@include box-shadow(none)
|
||||
|
||||
|
@ -272,105 +272,6 @@ $sheet-padding: 16px
|
|||
.ui-tabs
|
||||
position: static
|
||||
|
||||
// Modal box
|
||||
&.ui-dialog
|
||||
display: none
|
||||
height: auto !important
|
||||
padding: 6px
|
||||
//overflow: hidden
|
||||
background-color: rgba(60,60,60,0.7)
|
||||
border: 1px solid
|
||||
border-color: #888 #555 #444
|
||||
//overflow: hidden
|
||||
@include radius(8px)
|
||||
@include box-shadow(0 1px 12px rgba(0, 0, 0, 0.6))
|
||||
@include background-clip()
|
||||
.ui-dialog-content
|
||||
padding: 0
|
||||
.ui-dialog-titlebar, .ui-dialog-content, .ui-dialog-buttonpane
|
||||
padding: 16px
|
||||
.ui-dialog-titlebar
|
||||
border-top: none
|
||||
border-left: none
|
||||
border-right: none
|
||||
border-bottom: 1px solid #cacaca
|
||||
@include radius(2px 2px 0 0)
|
||||
@include vertical-gradient(#FCFCFC, #DEDEDE)
|
||||
.ui-dialog-title
|
||||
margin: 0
|
||||
padding: 0
|
||||
.ui-dialog-content
|
||||
background: white
|
||||
width: auto !important
|
||||
.ui-dialog-buttonpane
|
||||
border-top: 1px solid #e0e0e0
|
||||
background: #f5f7f9
|
||||
margin: 0
|
||||
@include radius(0 0 2px 2px)
|
||||
button
|
||||
margin: 0 4px 0 0
|
||||
.ui-dialog-buttonset
|
||||
float: left
|
||||
.ui-button
|
||||
margin-right: 4px
|
||||
.ui-dialog-titlebar-close
|
||||
padding: 0
|
||||
.ui-icon-closethick
|
||||
display: none
|
||||
&:before
|
||||
content: "×"
|
||||
font-size: 18px
|
||||
font-weight: bold
|
||||
line-height: 16px
|
||||
color: black
|
||||
text-shadow: 0 1px 0 white
|
||||
padding: 0
|
||||
cursor: pointer
|
||||
background: transparent
|
||||
border: 0
|
||||
&:hover
|
||||
color: black
|
||||
text-decoration: none
|
||||
.oe_about
|
||||
background-color: white
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=)
|
||||
@include radius(0 0 2px 2px)
|
||||
a
|
||||
color: $link-color
|
||||
&:hover
|
||||
text-decoration: underline
|
||||
&:focus
|
||||
outline: none
|
||||
.oe_logo
|
||||
margin-left: -6px
|
||||
.oe_bottom
|
||||
position: absolute
|
||||
top: 50%
|
||||
left: 0
|
||||
right: 0
|
||||
bottom: 0
|
||||
text-shadow: 0 1px 1px #999999
|
||||
@include vertical-gradient(#b41616, #600606)
|
||||
color: #eee
|
||||
padding: 0 16px
|
||||
@include radius(0 0 2px 2px)
|
||||
a
|
||||
color: #eee
|
||||
|
||||
&.ui-dialog.oe_act_window
|
||||
.ui-dialog-content
|
||||
padding: 0px
|
||||
|
||||
.modal-backdrop
|
||||
position: fixed
|
||||
top: 0
|
||||
right: 0
|
||||
bottom: 0
|
||||
left: 0
|
||||
z-index: 1040
|
||||
background-color: black
|
||||
@include opacity(.3)
|
||||
|
||||
// }}}
|
||||
// Generic classes {{{
|
||||
.oe_i
|
||||
|
@ -1030,11 +931,6 @@ $sheet-padding: 16px
|
|||
.oe_logo
|
||||
margin-left: -6px
|
||||
.oe_bottom
|
||||
position: absolute
|
||||
top: 50%
|
||||
left: 0
|
||||
right: 0
|
||||
bottom: 0
|
||||
text-shadow: 0 1px 1px #999999
|
||||
@include vertical-gradient(#b41616, #600606)
|
||||
color: #eee
|
||||
|
@ -2764,9 +2660,6 @@ body.oe_single_form
|
|||
> .arrow span
|
||||
background-color: #729fcf !important
|
||||
|
||||
// jquery ui for ie
|
||||
.ui-dialog-buttonpane .ui-dialog-buttonset .ui-button
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#EFEFEF', endColorstr='#D8D8D8')
|
||||
// }}}
|
||||
|
||||
// @media print {{{
|
||||
|
@ -2863,6 +2756,19 @@ body.oe_single_form
|
|||
height: 18px
|
||||
// End hack}}}
|
||||
|
||||
// Customized modal according bootstrap3
|
||||
.modal
|
||||
.modal-header button.close
|
||||
border: none
|
||||
background: none
|
||||
padding: 1px
|
||||
height: 18px
|
||||
font-size: 20px
|
||||
.modal-footer
|
||||
text-align: left
|
||||
.oe_act_window.modal-body
|
||||
padding: 0
|
||||
|
||||
input[type="radio"], input[type="checkbox"]
|
||||
margin-right: 4px
|
||||
margin-left: 4px
|
||||
|
|
|
@ -56,16 +56,6 @@ instance.web.action_warn = function(element, action) {
|
|||
};
|
||||
instance.web.client_actions.add("action_warn", "instance.web.action_warn");
|
||||
|
||||
/**
|
||||
* The very minimal function everything should call to create a dialog
|
||||
* in OpenERP Web Client.
|
||||
*/
|
||||
instance.web.dialog = function(element) {
|
||||
var result = element.dialog.apply(element, _.rest(_.toArray(arguments)));
|
||||
result.dialog("widget").openerpClass();
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
A useful class to handle dialogs.
|
||||
|
||||
|
@ -81,6 +71,8 @@ instance.web.Dialog = instance.web.Widget.extend({
|
|||
@param {Widget} parent
|
||||
@param {dictionary} options A dictionary that will be forwarded to jQueryUI Dialog. Additionaly, that
|
||||
dictionary can contain the following keys:
|
||||
- size: one of the following: 'large', 'medium', 'small'
|
||||
- dialogClass: class to add to the body of dialog
|
||||
- buttons: Deprecated. The buttons key is not propagated to jQueryUI Dialog. It must be a dictionary (key = button
|
||||
label, value = click handler) or a list of dictionaries (each element in the dictionary is send to the
|
||||
corresponding method of a jQuery element targeting the <button> tag). It is deprecated because all dialogs
|
||||
|
@ -94,57 +86,15 @@ instance.web.Dialog = instance.web.Widget.extend({
|
|||
this._super(parent);
|
||||
this.content_to_set = content;
|
||||
this.dialog_options = {
|
||||
modal: true,
|
||||
destroy_on_close: true,
|
||||
width: 900,
|
||||
min_width: 0,
|
||||
max_width: '95%',
|
||||
height: 'auto',
|
||||
min_height: 0,
|
||||
max_height: $(window.top).height() - 200,
|
||||
autoOpen: false,
|
||||
position: [false, 40],
|
||||
size: 'large', //'medium', 'small'
|
||||
buttons: null,
|
||||
resizeStop: function() {
|
||||
self.trigger("resized");
|
||||
},
|
||||
};
|
||||
if (options) {
|
||||
_.extend(this.dialog_options, options);
|
||||
}
|
||||
this.on("closing", this, this._closing);
|
||||
this.$buttons = $('<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"><span class="oe_dialog_custom_buttons"/></div>');
|
||||
},
|
||||
_get_options: function() {
|
||||
var self = this;
|
||||
var o = _.extend({}, this.dialog_options);
|
||||
var sizes = {
|
||||
width: $(window.top).width(),
|
||||
height: $(window.top).height(),
|
||||
};
|
||||
_.each(sizes, function(available_size, unit) {
|
||||
o[unit] = self._get_size(o[unit], available_size);
|
||||
o['min_' + unit] = self._get_size(o['min_' + unit] || 0, available_size);
|
||||
o['max_' + unit] = self._get_size(o['max_' + unit] || 0, available_size);
|
||||
if (o[unit] !== 'auto' && o['min_' + unit] && o[unit] < o['min_' + unit]) {
|
||||
o[unit] = o['min_' + unit];
|
||||
}
|
||||
if (o[unit] !== 'auto' && o['max_' + unit] && o[unit] > o['max_' + unit]) {
|
||||
o[unit] = o['max_' + unit];
|
||||
}
|
||||
});
|
||||
o.title = o.title || this.dialog_title;
|
||||
return o;
|
||||
},
|
||||
_get_size: function(val, available_size) {
|
||||
val = val.toString();
|
||||
if (val === 'auto') {
|
||||
return val;
|
||||
} else if (val.slice(-1) === "%") {
|
||||
return Math.round(available_size / 100 * parseInt(val.slice(0, -1), 10));
|
||||
} else {
|
||||
return parseInt(val, 10);
|
||||
}
|
||||
this.$buttons = $('<div class="modal-footer"><span class="oe_dialog_custom_buttons"/></div>');
|
||||
},
|
||||
renderElement: function() {
|
||||
if (this.content_to_set) {
|
||||
|
@ -162,8 +112,7 @@ instance.web.Dialog = instance.web.Widget.extend({
|
|||
if (!this.dialog_inited) {
|
||||
this.init_dialog();
|
||||
}
|
||||
this.$el.dialog('open');
|
||||
this.$el.dialog("widget").append(this.$buttons);
|
||||
this.$buttons.insertAfter(this.$dialog_box.find(".modal-body"));
|
||||
return this;
|
||||
},
|
||||
_add_buttons: function(buttons) {
|
||||
|
@ -188,16 +137,39 @@ instance.web.Dialog = instance.web.Widget.extend({
|
|||
@return The result returned by start().
|
||||
*/
|
||||
init_dialog: function() {
|
||||
var options = this._get_options();
|
||||
var self = this;
|
||||
var options = _.extend({}, this.dialog_options);
|
||||
options.title = options.title || this.dialog_title;
|
||||
if (options.buttons) {
|
||||
this._add_buttons(options.buttons);
|
||||
delete(options.buttons);
|
||||
}
|
||||
this.renderElement();
|
||||
instance.web.dialog(this.$el, options);
|
||||
if (options.height === 'auto' && options.max_height) {
|
||||
this.$el.css({ 'max-height': options.max_height, 'overflow-y': 'auto' });
|
||||
|
||||
this.$dialog_box = $(QWeb.render('Dialog', options)).appendTo("body");
|
||||
this.$el.modal({
|
||||
'backdrop': false,
|
||||
'keyboard': true,
|
||||
});
|
||||
if (options.size !== 'large'){
|
||||
var dialog_class_size = this.$dialog_box.find('.modal-lg').removeClass('modal-lg')
|
||||
if (options.size === 'small'){
|
||||
dialog_class_size.addClass('modal-sm');
|
||||
}
|
||||
}
|
||||
|
||||
this.$el.appendTo(this.$dialog_box.find(".modal-body"));
|
||||
var $dialog_content = this.$dialog_box.find('.modal-content');
|
||||
if (options.dialogClass){
|
||||
$dialog_content.find(".modal-body").addClass(options.dialogClass);
|
||||
}
|
||||
$dialog_content.openerpClass();
|
||||
|
||||
this.$dialog_box.on('hidden.bs.modal', this, function(){
|
||||
self.trigger("closing");
|
||||
});
|
||||
this.$dialog_box.modal('show');
|
||||
|
||||
this.dialog_inited = true;
|
||||
var res = this.start();
|
||||
return res;
|
||||
|
@ -206,9 +178,8 @@ instance.web.Dialog = instance.web.Widget.extend({
|
|||
Closes the popup, if destroy_on_close was passed to the constructor, it is also destroyed.
|
||||
*/
|
||||
close: function(reason) {
|
||||
if (this.dialog_inited && this.$el.is(":data(dialog)")) {
|
||||
this.trigger("closing", reason);
|
||||
this.$el.dialog('close');
|
||||
if (this.dialog_inited && this.$el.is(":data(bs.modal)")) {
|
||||
this.$el.parents('.modal').modal('hide');
|
||||
}
|
||||
},
|
||||
_closing: function() {
|
||||
|
@ -225,6 +196,7 @@ instance.web.Dialog = instance.web.Widget.extend({
|
|||
*/
|
||||
destroy: function (reason) {
|
||||
this.$buttons.remove();
|
||||
var self = this;
|
||||
_.each(this.getChildren(), function(el) {
|
||||
el.destroy();
|
||||
});
|
||||
|
@ -233,8 +205,13 @@ instance.web.Dialog = instance.web.Widget.extend({
|
|||
this.close(reason);
|
||||
this.__tmp_dialog_destroying = undefined;
|
||||
}
|
||||
if (this.dialog_inited && !this.isDestroyed() && this.$el.is(":data(dialog)")) {
|
||||
this.$el.dialog('destroy');
|
||||
if (this.dialog_inited && !this.isDestroyed() && this.$el.is(":data(bs.modal)")) {
|
||||
//we need this to put the instruction to remove modal from DOM at the end
|
||||
//of the queue, otherwise it might already have been removed before the modal-backdrop
|
||||
//is removed when pressing escape key
|
||||
setTimeout(function () {
|
||||
self.$el.parents('.modal').remove();
|
||||
},0);
|
||||
}
|
||||
this._super();
|
||||
}
|
||||
|
@ -272,12 +249,13 @@ instance.web.CrashManager = instance.web.Class.extend({
|
|||
if (error.data.exception_type === "except_osv") {
|
||||
error = _.extend({}, error, {data: _.extend({}, error.data, {message: error.data.arguments[0] + "\n\n" + error.data.arguments[1]})});
|
||||
}
|
||||
instance.web.dialog($('<div>' + QWeb.render('CrashManager.warning', {error: error}) + '</div>'), {
|
||||
new instance.web.Dialog(this, {
|
||||
size: 'medium',
|
||||
title: "OpenERP " + (_.str.capitalize(error.type) || "Warning"),
|
||||
buttons: [
|
||||
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
|
||||
]
|
||||
});
|
||||
{text: _t("Ok"), click: function() { this.parents('.modal').modal('hide'); }}
|
||||
],
|
||||
}, $('<div>' + QWeb.render('CrashManager.warning', {error: error}) + '</div>')).open();
|
||||
},
|
||||
show_error: function(error) {
|
||||
if (!this.active) {
|
||||
|
@ -285,17 +263,12 @@ instance.web.CrashManager = instance.web.Class.extend({
|
|||
}
|
||||
var buttons = {};
|
||||
buttons[_t("Ok")] = function() {
|
||||
$(this).dialog("close");
|
||||
this.parents('.modal').modal('hide');
|
||||
};
|
||||
var dialog = new instance.web.Dialog(this, {
|
||||
new instance.web.Dialog(this, {
|
||||
title: "OpenERP " + _.str.capitalize(error.type),
|
||||
width: '80%',
|
||||
height: '50%',
|
||||
min_width: '800px',
|
||||
min_height: '600px',
|
||||
buttons: buttons
|
||||
}).open();
|
||||
dialog.$el.html(QWeb.render('CrashManager.error', {session: instance.session, error: error}));
|
||||
}, QWeb.render('CrashManager.error', {session: instance.session, error: error})).open();
|
||||
},
|
||||
show_message: function(exception) {
|
||||
this.show_error({
|
||||
|
@ -342,16 +315,17 @@ instance.web.RedirectWarningHandler = instance.web.Dialog.extend(instance.web.Ex
|
|||
error = this.error;
|
||||
error.data.message = error.data.arguments[0];
|
||||
|
||||
instance.web.dialog($('<div>' + QWeb.render('CrashManager.warning', {error: error}) + '</div>'), {
|
||||
new instance.web.Dialog(this, {
|
||||
size: 'medium',
|
||||
title: "OpenERP " + (_.str.capitalize(error.type) || "Warning"),
|
||||
buttons: [
|
||||
{text: _t("Ok"), click: function() { $(this).dialog("close"); }},
|
||||
{text: _t("Ok"), click: function() { this.$el.parents('.modal').modal('hide'); }},
|
||||
{text: error.data.arguments[2], click: function() {
|
||||
window.location.href='#action='+error.data.arguments[1];
|
||||
$(this).dialog("close");
|
||||
this.$el.parents('.modal').modal('hide');
|
||||
}}
|
||||
]
|
||||
});
|
||||
],
|
||||
}, QWeb.render('CrashManager.warning', {error: error})).open();
|
||||
this.destroy();
|
||||
}
|
||||
});
|
||||
|
@ -498,13 +472,13 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
|
|||
* @param {String} error.error message of the error dialog
|
||||
*/
|
||||
display_error: function (error) {
|
||||
return instance.web.dialog($('<div>'), {
|
||||
modal: true,
|
||||
return new instance.web.Dialog(this, {
|
||||
size: 'medium',
|
||||
title: error.title,
|
||||
buttons: [
|
||||
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
|
||||
{text: _t("Ok"), click: function() { this.$el.parents('.modal').modal('hide'); }}
|
||||
]
|
||||
}).html(error.error);
|
||||
}, $('<div>').html(error.error)).open();
|
||||
},
|
||||
do_create: function(form) {
|
||||
var self = this;
|
||||
|
@ -731,13 +705,13 @@ instance.web.ChangePassword = instance.web.Widget.extend({
|
|||
});
|
||||
},
|
||||
display_error: function (error) {
|
||||
return instance.web.dialog($('<div>'), {
|
||||
modal: true,
|
||||
return new instance.web.Dialog(this, {
|
||||
size: 'medium',
|
||||
title: error.title,
|
||||
buttons: [
|
||||
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
|
||||
{text: _t("Ok"), click: function() { this.$el.parents('.modal').modal('hide'); }}
|
||||
]
|
||||
}).html(error.error);
|
||||
}, $('<div>').html(error.error)).open();
|
||||
},
|
||||
});
|
||||
instance.web.client_actions.add("change_password", "instance.web.ChangePassword");
|
||||
|
@ -1052,8 +1026,11 @@ instance.web.UserMenu = instance.web.Widget.extend({
|
|||
e.preventDefault();
|
||||
window.location = $.param.querystring( window.location.href, 'debug');
|
||||
});
|
||||
instance.web.dialog($help, {autoOpen: true,
|
||||
modal: true, width: 507, height: 290, resizable: false, title: _t("About")});
|
||||
new instance.web.Dialog(this, {
|
||||
size: 'medium',
|
||||
dialogClass: 'oe_act_window',
|
||||
title: _t("About"),
|
||||
}, $help).open();
|
||||
});
|
||||
},
|
||||
});
|
||||
|
|
|
@ -46,7 +46,6 @@ instance.web.DataExport = instance.web.Dialog.extend({
|
|||
start: function() {
|
||||
var self = this;
|
||||
this._super.apply(this, arguments);
|
||||
self.$el.removeClass('ui-dialog-content ui-widget-content');
|
||||
|
||||
var got_fields = new $.Deferred();
|
||||
this.$el.find('#import_compat').change(function() {
|
||||
|
@ -413,7 +412,6 @@ instance.web.DataExport = instance.web.Dialog.extend({
|
|||
});
|
||||
},
|
||||
close: function() {
|
||||
this.$el.remove();
|
||||
this._super();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -586,13 +586,13 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
this._internal_set_values(result.value, processed);
|
||||
}
|
||||
if (!_.isEmpty(result.warning)) {
|
||||
instance.web.dialog($(QWeb.render("CrashManager.warning", result.warning)), {
|
||||
new instance.web.Dialog(this, {
|
||||
size: 'medium',
|
||||
title:result.warning.title,
|
||||
modal: true,
|
||||
buttons: [
|
||||
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
|
||||
{text: _t("Ok"), click: function() { this.parents('.modal').modal('hide'); }}
|
||||
]
|
||||
});
|
||||
}, QWeb.render("CrashManager.warning", result.warning)).open();
|
||||
}
|
||||
|
||||
return $.Deferred().resolve();
|
||||
|
@ -1080,7 +1080,6 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
};
|
||||
})
|
||||
.value();
|
||||
|
||||
var d = new instance.web.Dialog(this, {
|
||||
title: _t("Set Default"),
|
||||
args: {
|
||||
|
@ -1956,26 +1955,23 @@ instance.web.form.WidgetButton = instance.web.form.FormWidget.extend({
|
|||
var exec_action = function() {
|
||||
if (self.node.attrs.confirm) {
|
||||
var def = $.Deferred();
|
||||
var dialog = instance.web.dialog($('<div/>').text(self.node.attrs.confirm), {
|
||||
var dialog = instance.web.Dialog(this, {
|
||||
title: _t('Confirm'),
|
||||
modal: true,
|
||||
buttons: [
|
||||
{text: _t("Cancel"), click: function() {
|
||||
$(this).dialog("close");
|
||||
this.parents('.modal').modal('hide');
|
||||
}
|
||||
},
|
||||
{text: _t("Ok"), click: function() {
|
||||
var self2 = this;
|
||||
self.on_confirmed().always(function() {
|
||||
$(self2).dialog("close");
|
||||
self2.parents('.modal').modal('hide');
|
||||
});
|
||||
}
|
||||
}
|
||||
],
|
||||
beforeClose: function() {
|
||||
def.resolve();
|
||||
},
|
||||
});
|
||||
}, $('<div/>').text(self.node.attrs.confirm)).open();
|
||||
dialog.on("closing", null, function() {def.resolve();});
|
||||
return def.promise();
|
||||
} else {
|
||||
return self.on_confirmed();
|
||||
|
@ -3381,7 +3377,7 @@ instance.web.form.M2ODialog = instance.web.Dialog.extend({
|
|||
init: function(parent) {
|
||||
this._super(parent, {
|
||||
title: _.str.sprintf(_t("Add %s"), parent.string),
|
||||
width: 312,
|
||||
size: 'medium',
|
||||
});
|
||||
},
|
||||
start: function() {
|
||||
|
@ -3449,7 +3445,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
|
|||
delete this.$drop_down;
|
||||
}
|
||||
if (this.$input) {
|
||||
this.$input.closest(".ui-dialog .ui-dialog-content").off('scroll');
|
||||
this.$input.closest(".modal .modal-content").off('scroll');
|
||||
this.$input.off('keyup blur autocompleteclose autocompleteopen ' +
|
||||
'focus focusout change keydown');
|
||||
delete this.$input;
|
||||
|
@ -3542,7 +3538,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
|
|||
self.$input.autocomplete("close");
|
||||
}
|
||||
}, 50);
|
||||
this.$input.closest(".ui-dialog .ui-dialog-content").on('scroll', this, close_autocomplete);
|
||||
this.$input.closest(".modal .modal-content").on('scroll', this, close_autocomplete);
|
||||
|
||||
self.ed_def = $.Deferred();
|
||||
self.uned_def = $.Deferred();
|
||||
|
@ -5068,13 +5064,12 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({
|
|||
var self = this;
|
||||
this.renderElement();
|
||||
var dialog = new instance.web.Dialog(this, {
|
||||
min_width: '800px',
|
||||
dialogClass: 'oe_act_window',
|
||||
close: function() {
|
||||
self.check_exit(true);
|
||||
},
|
||||
title: this.options.title || "",
|
||||
}, this.$el).open();
|
||||
dialog.on('closing', this, function (e){
|
||||
self.check_exit(true);
|
||||
});
|
||||
this.$buttonpane = dialog.$buttons;
|
||||
this.start();
|
||||
},
|
||||
|
@ -5141,8 +5136,8 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({
|
|||
},
|
||||
destroy: function () {
|
||||
this.trigger('closed');
|
||||
if (this.$el.is(":data(dialog)")) {
|
||||
this.$el.dialog('close');
|
||||
if (this.$el.is(":data(bs.modal)")) {
|
||||
this.$el.parents('.modal').modal('hide');
|
||||
}
|
||||
this._super();
|
||||
},
|
||||
|
|
|
@ -410,10 +410,10 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
}
|
||||
this.dialog_stop(executor.action);
|
||||
this.dialog = new instance.web.Dialog(this, {
|
||||
title: executor.action.name,
|
||||
dialogClass: executor.klass,
|
||||
});
|
||||
this.dialog.on("closing", null, options.on_close);
|
||||
this.dialog.dialog_title = executor.action.name;
|
||||
if (widget instanceof instance.web.ViewManager) {
|
||||
_.extend(widget.flags, {
|
||||
$buttons: this.dialog.$buttons,
|
||||
|
@ -926,7 +926,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
|
|||
current_view = this.views[this.active_view].controller;
|
||||
switch (val) {
|
||||
case 'fvg':
|
||||
var dialog = new instance.web.Dialog(this, { title: _t("Fields View Get"), width: '95%' }).open();
|
||||
var dialog = new instance.web.Dialog(this, { title: _t("Fields View Get") }).open();
|
||||
$('<pre>').text(instance.web.json_node_to_xml(current_view.fields_view.arch, true)).appendTo(dialog.$el);
|
||||
break;
|
||||
case 'tests':
|
||||
|
@ -943,7 +943,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
|
|||
this.dataset.call('perm_read', [ids]).done(function(result) {
|
||||
var dialog = new instance.web.Dialog(this, {
|
||||
title: _.str.sprintf(_t("View Log (%s)"), self.dataset.model),
|
||||
width: 400
|
||||
size: 'medium',
|
||||
}, QWeb.render('ViewManagerDebugViewLog', {
|
||||
perm : result[0],
|
||||
format : instance.web.format_value
|
||||
|
@ -986,7 +986,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
|
|||
new instance.web.Dialog(self, {
|
||||
title: _.str.sprintf(_t("Model %s fields"),
|
||||
self.dataset.model),
|
||||
width: '95%'}, $root).open();
|
||||
}, $root).open();
|
||||
});
|
||||
break;
|
||||
case 'edit_workflow':
|
||||
|
@ -1223,7 +1223,7 @@ instance.web.Sidebar = instance.web.Widget.extend({
|
|||
domain = $.Deferred().resolve(undefined);
|
||||
}
|
||||
if (ids.length === 0) {
|
||||
instance.web.dialog($("<div />").text(_t("You must choose at least one record.")), { title: _t("Warning"), modal: true });
|
||||
new instance.web.Dialog(this, { title: _t("Warning"), size: 'medium',}, $("<div />").text(_t("You must choose at least one record."))).open();
|
||||
return false;
|
||||
}
|
||||
var active_ids_context = {
|
||||
|
|
|
@ -32,7 +32,20 @@
|
|||
<t t-esc="message"/>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="Dialog">
|
||||
<div class="modal" tabindex="-1" data-backdrop="static" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3 class="modal-title"><t t-raw="title"/></h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="CrashManager.warning">
|
||||
<table cellspacing="0" cellpadding="0" border="0" class="oe_dialog_warning">
|
||||
<tr>
|
||||
|
|
|
@ -101,7 +101,6 @@ instance.web.DiagramView = instance.web.View.extend({
|
|||
params['connectors_fields'].push(self.fields[conn.attrs.name]['string']|| this.toTitleCase(conn.attrs.name));
|
||||
params['connectors'].push(conn.attrs.name);
|
||||
});
|
||||
|
||||
this.rpc(
|
||||
'/web_diagram/diagram/get_diagram_info',params).done(function(result) {
|
||||
self.draw_diagram(result);
|
||||
|
@ -179,11 +178,6 @@ instance.web.DiagramView = instance.web.View.extend({
|
|||
var r = new Raphael(canvas, '100%','100%');
|
||||
|
||||
var graph = new CuteGraph(r,style,canvas.parentNode);
|
||||
|
||||
var confirm_dialog = $('#dialog').dialog({
|
||||
autoOpen: false,
|
||||
title: _t("Are you sure?") });
|
||||
|
||||
|
||||
_.each(res_nodes, function(node) {
|
||||
var n = new CuteNode(
|
||||
|
@ -344,7 +338,7 @@ instance.web.DiagramView = instance.web.View.extend({
|
|||
});
|
||||
// We want to destroy the dummy edge after a creation cancel. This destroys it even if we save the changes.
|
||||
// This is not a problem since the diagram is completely redrawn on saved changes.
|
||||
pop.$el.bind("dialogbeforeclose",function(){
|
||||
pop.$el.parents('.modal').on('hidden.bs.modal', function (e){
|
||||
if(dummy_cuteedge){
|
||||
dummy_cuteedge.remove();
|
||||
}
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
.openerp .oe_kanban_view .oe_view_nocontent {
|
||||
position: relative;
|
||||
max-width: none;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_content {
|
||||
|
|
|
@ -43,7 +43,6 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
|||
this.currently_dragging = {};
|
||||
this.limit = options.limit || 40;
|
||||
this.add_group_mutex = new $.Mutex();
|
||||
this.last_position = 'static';
|
||||
},
|
||||
view_loading: function(r) {
|
||||
return this.load_kanban(r);
|
||||
|
@ -496,16 +495,15 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
|||
|| (!this.options.action.help && !this.options.action.get_empty_list_help)) {
|
||||
return;
|
||||
}
|
||||
this.last_position = this.$el.find('table:first').css("position");
|
||||
this.$el.find('table:first').css("position", "absolute");
|
||||
$(QWeb.render('KanbanView.nocontent', { content : this.options.action.get_empty_list_help || this.options.action.help})).insertAfter(this.$('table:first'));
|
||||
this.$el.css("position", "relative");
|
||||
$(QWeb.render('KanbanView.nocontent', { content : this.options.action.get_empty_list_help || this.options.action.help})).insertBefore(this.$('table:first'));
|
||||
this.$el.find('.oe_view_nocontent').click(function() {
|
||||
self.$buttons.openerpBounce();
|
||||
});
|
||||
},
|
||||
remove_no_result: function() {
|
||||
this.$el.find('table:first').css("position", this.last_position);
|
||||
this.$el.find('.oe_view_nocontent').remove();
|
||||
this.$el.css("position", "");
|
||||
this.$el.find('.oe_view_nocontent').remove();
|
||||
},
|
||||
|
||||
/*
|
||||
|
|
|
@ -102,7 +102,7 @@
|
|||
</t>
|
||||
</div>
|
||||
<t t-name="KanbanView.nocontent">
|
||||
<div class="oe_view_nocontent">
|
||||
<div class="oe_view_nocontent" style="position:absolute;">
|
||||
<div class="oe_view_nocontent_bg"></div>
|
||||
<div class="oe_view_nocontent_content">
|
||||
<t t-raw="content"/>
|
||||
|
|
|
@ -58,7 +58,6 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({
|
|||
};
|
||||
this.view_edit_dialog = new instance.web.Dialog(this, {
|
||||
title: action_title,
|
||||
width: 850,
|
||||
buttons: [
|
||||
{text: _t("Create"), click: function() { self.on_create_view(); }},
|
||||
{text: _t("Edit"), click: function() { self.xml_element_id = 0; self.get_arch(); }},
|
||||
|
@ -376,7 +375,6 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({
|
|||
this.one_object = one_object;
|
||||
this.edit_xml_dialog = new instance.web.Dialog(this, {
|
||||
title: _.str.sprintf(_t("View Editor %d - %s"), self.main_view_id, self.model),
|
||||
height: '90%',
|
||||
buttons: [
|
||||
{text: _t("Inherited View"), click: function(){
|
||||
var selected_row = self.edit_xml_dialog.$el.find('.ui-selected');
|
||||
|
@ -829,7 +827,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({
|
|||
var self = this;
|
||||
this.edit_node_dialog = new instance.web.Dialog(this,{
|
||||
title: _t("Properties"),
|
||||
width: 450,
|
||||
size: 'medium',
|
||||
buttons: [
|
||||
{text: _t("Update"), click: function () {
|
||||
var warn = false, update_values = [];
|
||||
|
@ -955,7 +953,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({
|
|||
this.add_widget = [];
|
||||
this.add_node_dialog = new instance.web.Dialog(this,{
|
||||
title: _t("Properties"),
|
||||
width: 450,
|
||||
size: 'medium',
|
||||
buttons: [
|
||||
{text: _t("Update"), click: function() {
|
||||
var check_add_node = true, values = {};
|
||||
|
|
Loading…
Reference in New Issue