[IMP] web: add new DomainSelectorDialog dialog widget

The DomainSelectorDialog widget allows the use of a DomainSelector
widget inside a modal.
This commit is contained in:
qsm-odoo
2017-01-06 16:03:09 +01:00
parent b8eb821f13
commit 20b109fac9
2 changed files with 49 additions and 0 deletions
@@ -0,0 +1,48 @@
odoo.define("web.DomainSelectorDialog", function (require) {
"use strict";
var core = require("web.core");
var Dialog = require("web.Dialog");
var DomainSelector = require("web.DomainSelector");
var _t = core._t;
return Dialog.extend({
init: function (parent, model, domain, options) {
this.model = model;
this.options = _.extend({
readonly: true,
fs_filters: {},
debugMode: false,
}, options || {});
var buttons;
if (this.options.readonly) {
buttons = [
{text: _t("Close"), close: true},
];
} else {
buttons = [
{text: _t("Save"), classes: "btn-primary", close: true, click: function () {
this.trigger_up("domain_selected", {domain: this.domainSelector.getDomain()});
}},
{text: _t("Discard"), close: true},
];
}
this._super(parent, _.extend({}, {
title: _t("Domain"),
buttons: buttons,
}, options || {}));
this.domainSelector = new DomainSelector(this, model, domain, options);
},
start: function () {
this.$el.css("overflow", "visible").closest(".modal-dialog").css("height", "auto"); // This restores default modal height (bootstrap) and allows field selector to overflow
return $.when(
this._super.apply(this, arguments),
this.domainSelector.appendTo(this.$el)
);
},
});
});
+1
View File
@@ -156,6 +156,7 @@
<script type="text/javascript" src="/web/static/src/js/widgets/debug_manager.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/data_export.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/date_picker.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/domain_selector_dialog.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/domain_selector.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/loading.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/model_field_selector.js"></script>