Auto-update off
This commit is contained in:
113
dist/tryton-sao.css
vendored
113
dist/tryton-sao.css
vendored
@@ -10237,25 +10237,35 @@ img.icon {
|
|||||||
}
|
}
|
||||||
.form fieldset.form-panel {
|
.form fieldset.form-panel {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border: 1px solid #d7e3de;
|
border: 0;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
box-shadow: 0 3px 10px rgba(30, 55, 58, 0.075);
|
box-shadow:
|
||||||
margin: 8px 0;
|
inset 0 0 0 1px #d3e1dc,
|
||||||
overflow: visible;
|
0 3px 10px rgba(30, 55, 58, 0.075);
|
||||||
padding: 14px 16px 16px;
|
margin: 4px 0;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: visible;
|
||||||
|
padding: 42px 16px 16px;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
.form fieldset.form-panel > legend {
|
.form fieldset.form-panel > legend {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
background: #fff;
|
||||||
border-bottom: 1px solid #e6eee9;
|
border-bottom: 1px solid #e6eee9;
|
||||||
color: #145369;
|
color: #145369;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
|
height: 25px;
|
||||||
|
left: 16px;
|
||||||
line-height: 1.35;
|
line-height: 1.35;
|
||||||
margin: 0 0 12px;
|
margin: 0;
|
||||||
padding: 0 0 9px;
|
padding: 0 0 8px;
|
||||||
width: 100%;
|
position: absolute;
|
||||||
|
right: 16px;
|
||||||
|
top: 12px;
|
||||||
|
width: auto;
|
||||||
}
|
}
|
||||||
.form fieldset.form-panel > legend .form-panel-icon {
|
.form fieldset.form-panel > legend .form-panel-icon {
|
||||||
height: 18px;
|
height: 18px;
|
||||||
@@ -10270,6 +10280,11 @@ img.icon {
|
|||||||
min-width: 0;
|
min-width: 0;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
.form fieldset.form-panel > .form-container > .form-item {
|
||||||
|
justify-self: stretch;
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
.form fieldset.form-panel .form-label {
|
.form fieldset.form-panel .form-label {
|
||||||
color: #4b5f60;
|
color: #4b5f60;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@@ -10285,16 +10300,59 @@ img.icon {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 10px 18px;
|
gap: 10px 18px;
|
||||||
}
|
}
|
||||||
|
.form fieldset.form-panel-summary > .form-container > .form-item {
|
||||||
|
align-items: center;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
.form fieldset.form-panel-summary .form-label {
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
.form fieldset.form-panel-sidebar {
|
.form fieldset.form-panel-sidebar {
|
||||||
box-shadow: 0 4px 14px rgba(30, 55, 58, 0.08);
|
box-shadow: 0 4px 14px rgba(30, 55, 58, 0.08);
|
||||||
|
padding: 32px 10px 9px;
|
||||||
}
|
}
|
||||||
.form fieldset.form-panel-sidebar > .form-container,
|
.form fieldset.form-panel-sidebar > .form-container,
|
||||||
.form .form-panel-sidebar-grid {
|
.form .form-panel-sidebar-grid {
|
||||||
gap: 8px 10px;
|
gap: 4px 8px;
|
||||||
}
|
}
|
||||||
.form fieldset.form-panel-sidebar .form-label {
|
.form fieldset.form-panel-sidebar .form-label {
|
||||||
color: #145369;
|
color: #145369;
|
||||||
font-size: 12px;
|
font-size: 11px;
|
||||||
|
line-height: 1.2;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.form fieldset.form-panel-sidebar .form-item {
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
.form fieldset.form-panel-sidebar input.form-control,
|
||||||
|
.form fieldset.form-panel-sidebar .input-group > .form-control,
|
||||||
|
.form fieldset.form-panel-sidebar .input-group-addon,
|
||||||
|
.form fieldset.form-panel-sidebar .selection {
|
||||||
|
background: transparent;
|
||||||
|
border-color: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
min-height: 20px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
padding-top: 1px;
|
||||||
|
}
|
||||||
|
.form fieldset.form-panel-sidebar input.form-control,
|
||||||
|
.form fieldset.form-panel-sidebar .input-group > .form-control {
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: 700;
|
||||||
|
height: 22px;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
.form fieldset.form-panel-sidebar .input-group-addon {
|
||||||
|
font-size: 11px;
|
||||||
|
height: 22px;
|
||||||
|
padding: 1px 4px;
|
||||||
|
}
|
||||||
|
.form fieldset#purchase_recap.form-panel-sidebar,
|
||||||
|
.form fieldset[id="purchase_recap"].form-panel-sidebar,
|
||||||
|
.form fieldset#sale_recap.form-panel-sidebar,
|
||||||
|
.form fieldset[id="sale_recap"].form-panel-sidebar {
|
||||||
|
min-height: 172px;
|
||||||
}
|
}
|
||||||
.form fieldset.form-panel-plain {
|
.form fieldset.form-panel-plain {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
@@ -11048,13 +11106,24 @@ body {
|
|||||||
html[theme="default"] .screen-container > .filter-box,
|
html[theme="default"] .screen-container > .filter-box,
|
||||||
html[theme="default"] .screen-container .content-box > .form,
|
html[theme="default"] .screen-container .content-box > .form,
|
||||||
html[theme="default"] .screen-container .content-box > form {
|
html[theme="default"] .screen-container .content-box > form {
|
||||||
background: linear-gradient(180deg, #f4f8f6 0%, #edf4f1 100%);
|
background: linear-gradient(180deg, #fbfcfb 0%, #f6faf8 100%);
|
||||||
border: 1px solid #dfe8e3;
|
border: 1px solid #dfe8e3;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
padding: 14px 16px 10px;
|
padding: 14px 16px 10px;
|
||||||
box-shadow: 0 3px 12px rgba(53, 81, 84, 0.06);
|
box-shadow: 0 3px 12px rgba(53, 81, 84, 0.06);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html[theme="default"] .form .tab-pane:has(> .form-container > .form-item > fieldset.form-panel) {
|
||||||
|
background: #f7faf8;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[theme="default"] .form .tab-pane:has(> .form-container > .form-item > fieldset.form-panel)
|
||||||
|
> .form-container {
|
||||||
|
gap: 4px 14px;
|
||||||
|
}
|
||||||
|
|
||||||
html[theme="default"] .screen-container .form-group {
|
html[theme="default"] .screen-container .form-group {
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
@@ -11084,6 +11153,28 @@ html[theme="default"] .screen-container input[type="search"]:not(.ag-grid-tree-p
|
|||||||
-webkit-box-shadow: inset 0 1px 2px rgba(53, 81, 84, 0.03);
|
-webkit-box-shadow: inset 0 1px 2px rgba(53, 81, 84, 0.03);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input.form-control:not([type="checkbox"]):not([type="radio"]),
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar select.form-control,
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar textarea.form-control,
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar .input-group > .form-control,
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar .input-group > .form-control[readonly],
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar .input-group-addon,
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input[type="text"]:not(.ag-grid-tree-panel-checkbox),
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input[type="date"]:not(.ag-grid-tree-panel-checkbox),
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input[type="datetime-local"]:not(.ag-grid-tree-panel-checkbox),
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input[type="number"]:not(.ag-grid-tree-panel-checkbox),
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input[type="search"]:not(.ag-grid-tree-panel-checkbox) {
|
||||||
|
background: transparent !important;
|
||||||
|
border-color: transparent !important;
|
||||||
|
box-shadow: none !important;
|
||||||
|
-webkit-box-shadow: none !important;
|
||||||
|
font-size: 11px !important;
|
||||||
|
font-weight: 700;
|
||||||
|
height: 22px !important;
|
||||||
|
min-height: 20px !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
html[theme="default"] .screen-container .input-group-sm.input-icon-primary > .form-control,
|
html[theme="default"] .screen-container .input-group-sm.input-icon-primary > .form-control,
|
||||||
html[theme="default"] .screen-container .input-icon-primary > .form-control {
|
html[theme="default"] .screen-container .input-icon-primary > .form-control {
|
||||||
padding-left: 33px;
|
padding-left: 33px;
|
||||||
|
|||||||
196
dist/tryton-sao.js
vendored
196
dist/tryton-sao.js
vendored
@@ -21313,6 +21313,167 @@ function eval_pyson(value){
|
|||||||
const json = value.slice(3);
|
const json = value.slice(3);
|
||||||
const config = JSON.parse(json); // doit contenir { highlightedCountry: '250' }
|
const config = JSON.parse(json); // doit contenir { highlightedCountry: '250' }
|
||||||
|
|
||||||
|
if (config.type === 'execution-summary') {
|
||||||
|
let d3Div = container.find('.d3-execution-summary-container');
|
||||||
|
if (d3Div.length === 0) {
|
||||||
|
d3Div = $('<div/>', {
|
||||||
|
class: 'd3-execution-summary-container',
|
||||||
|
css: {
|
||||||
|
width: '100%',
|
||||||
|
height: height.toString() + 'px',
|
||||||
|
overflow: 'hidden',
|
||||||
|
background: 'transparent'
|
||||||
|
}
|
||||||
|
}).appendTo(container);
|
||||||
|
} else {
|
||||||
|
d3Div.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
const loadD3ExecutionSummary = () => {
|
||||||
|
const node = d3Div[0];
|
||||||
|
const w = Math.max(300, node.clientWidth || width || 360);
|
||||||
|
const h = Math.max(125, height || 160);
|
||||||
|
const totals = config.totals || {};
|
||||||
|
const rows = config.rows || [];
|
||||||
|
const totalQty = Math.max(1, Number(totals.quantity || 0));
|
||||||
|
const matched = Number(totals.matched || 0);
|
||||||
|
const shipped = Number(totals.shipped || 0);
|
||||||
|
const matchedPct = Math.min(100, Math.round((matched / totalQty) * 100));
|
||||||
|
const shippedPct = Math.min(100, Math.round((shipped / totalQty) * 100));
|
||||||
|
const fmt = d3.format(',.0f');
|
||||||
|
const hasTitle = Boolean(config.title);
|
||||||
|
const statsY = hasTitle ? 30 : 8;
|
||||||
|
const barY = hasTitle ? 58 : 36;
|
||||||
|
const rowY = hasTitle ? 84 : 62;
|
||||||
|
const palette = {
|
||||||
|
matched: '#2b8c87',
|
||||||
|
shipped: '#145369',
|
||||||
|
open: '#dbe8e3',
|
||||||
|
text: '#24484d',
|
||||||
|
muted: '#6b7d7b',
|
||||||
|
line: '#e3ede8'
|
||||||
|
};
|
||||||
|
|
||||||
|
const svg = d3.select(node).append('svg')
|
||||||
|
.attr('width', w)
|
||||||
|
.attr('height', h)
|
||||||
|
.attr('viewBox', `0 0 ${w} ${h}`);
|
||||||
|
|
||||||
|
if (hasTitle) {
|
||||||
|
svg.append('text')
|
||||||
|
.attr('x', 4)
|
||||||
|
.attr('y', 15)
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 12)
|
||||||
|
.attr('font-weight', 700)
|
||||||
|
.attr('fill', palette.text)
|
||||||
|
.text(config.title);
|
||||||
|
}
|
||||||
|
|
||||||
|
const stats = [
|
||||||
|
{label: 'Lines', value: fmt(totals.lines || rows.length || 0)},
|
||||||
|
{label: 'Matched', value: matchedPct + '%'},
|
||||||
|
{label: 'Shipped', value: shippedPct + '%'}
|
||||||
|
];
|
||||||
|
const stat = svg.selectAll('g.stat')
|
||||||
|
.data(stats)
|
||||||
|
.join('g')
|
||||||
|
.attr('class', 'stat')
|
||||||
|
.attr('transform', (d, i) => `translate(${4 + i * Math.min(95, (w - 16) / 3)}, ${statsY})`);
|
||||||
|
stat.append('text')
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 10)
|
||||||
|
.attr('fill', palette.muted)
|
||||||
|
.text(d => d.label);
|
||||||
|
stat.append('text')
|
||||||
|
.attr('y', 16)
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 14)
|
||||||
|
.attr('font-weight', 700)
|
||||||
|
.attr('fill', palette.text)
|
||||||
|
.text(d => d.value);
|
||||||
|
|
||||||
|
const barX = 4;
|
||||||
|
const barW = Math.max(160, w - 8);
|
||||||
|
const barH = 8;
|
||||||
|
svg.append('rect')
|
||||||
|
.attr('x', barX)
|
||||||
|
.attr('y', barY)
|
||||||
|
.attr('width', barW)
|
||||||
|
.attr('height', barH)
|
||||||
|
.attr('rx', 4)
|
||||||
|
.attr('fill', palette.open);
|
||||||
|
svg.append('rect')
|
||||||
|
.attr('x', barX)
|
||||||
|
.attr('y', barY)
|
||||||
|
.attr('width', barW * Math.min(1, matched / totalQty))
|
||||||
|
.attr('height', barH)
|
||||||
|
.attr('rx', 4)
|
||||||
|
.attr('fill', palette.matched);
|
||||||
|
svg.append('rect')
|
||||||
|
.attr('x', barX)
|
||||||
|
.attr('y', barY)
|
||||||
|
.attr('width', barW * Math.min(1, shipped / totalQty))
|
||||||
|
.attr('height', barH)
|
||||||
|
.attr('rx', 4)
|
||||||
|
.attr('fill', palette.shipped);
|
||||||
|
|
||||||
|
const row = svg.selectAll('g.exec-row')
|
||||||
|
.data(rows.slice(0, 3))
|
||||||
|
.join('g')
|
||||||
|
.attr('class', 'exec-row')
|
||||||
|
.attr('transform', (d, i) => `translate(4, ${rowY + i * 24})`);
|
||||||
|
row.append('line')
|
||||||
|
.attr('x1', 0)
|
||||||
|
.attr('x2', w - 8)
|
||||||
|
.attr('y1', -8)
|
||||||
|
.attr('y2', -8)
|
||||||
|
.attr('stroke', palette.line);
|
||||||
|
row.append('text')
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 10)
|
||||||
|
.attr('font-weight', 700)
|
||||||
|
.attr('fill', palette.text)
|
||||||
|
.text(d => (d.product || 'Line').slice(0, 18));
|
||||||
|
row.append('text')
|
||||||
|
.attr('x', 170)
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 10)
|
||||||
|
.attr('fill', palette.muted)
|
||||||
|
.text(d => `${fmt(d.shipped || 0)}/${fmt(d.quantity || 0)} ${d.unit || ''}`);
|
||||||
|
row.append('text')
|
||||||
|
.attr('x', 250)
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 10)
|
||||||
|
.attr('fill', palette.muted)
|
||||||
|
.text(d => (d.route || '').slice(0, 32));
|
||||||
|
|
||||||
|
if (!rows.length) {
|
||||||
|
svg.append('text')
|
||||||
|
.attr('x', 4)
|
||||||
|
.attr('y', 90)
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 11)
|
||||||
|
.attr('fill', palette.muted)
|
||||||
|
.text('No purchase lines to summarize');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const ensureD3 = (cb) => {
|
||||||
|
if (typeof d3 !== 'undefined') {
|
||||||
|
cb();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const script = document.createElement('script');
|
||||||
|
script.src = 'https://d3js.org/d3.v7.min.js';
|
||||||
|
script.onload = cb;
|
||||||
|
document.head.appendChild(script);
|
||||||
|
};
|
||||||
|
|
||||||
|
ensureD3(loadD3ExecutionSummary);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Réutilise le conteneur si déjà présent
|
// Réutilise le conteneur si déjà présent
|
||||||
let d3Div = container.find('.d3-map-container');
|
let d3Div = container.find('.d3-map-container');
|
||||||
if (d3Div.length === 0) {
|
if (d3Div.length === 0) {
|
||||||
@@ -23181,9 +23342,24 @@ function eval_pyson(value){
|
|||||||
var save_options = this._pending_state_save_options || {};
|
var save_options = this._pending_state_save_options || {};
|
||||||
this._pending_state_save_options = null;
|
this._pending_state_save_options = null;
|
||||||
this._state_save_timer = null;
|
this._state_save_timer = null;
|
||||||
this._persist_grid_state(save_options);
|
this._mark_grid_state_dirty(save_options);
|
||||||
}, 80);
|
}, 80);
|
||||||
},
|
},
|
||||||
|
_mark_grid_state_dirty: function(options) {
|
||||||
|
options = options || {};
|
||||||
|
var state = this._capture_grid_state();
|
||||||
|
var active_preset = this._find_layout_preset(this._active_layout_id);
|
||||||
|
this._layout_dirty = active_preset ?
|
||||||
|
!Sao.common.compare(active_preset.state, state) :
|
||||||
|
!this._is_standard_layout_state(state);
|
||||||
|
this._render_column_menu();
|
||||||
|
this._render_grouping_panel();
|
||||||
|
this._render_layout_panel();
|
||||||
|
this._update_layout_button();
|
||||||
|
if (!options.skipLayoutRefresh) {
|
||||||
|
this._schedule_grid_layout_refresh();
|
||||||
|
}
|
||||||
|
},
|
||||||
_on_grid_column_layout_changed: function(options) {
|
_on_grid_column_layout_changed: function(options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
this._schedule_state_save(options);
|
this._schedule_state_save(options);
|
||||||
@@ -23672,7 +23848,7 @@ function eval_pyson(value){
|
|||||||
this._persisted_state = jQuery.extend({}, this._persisted_state || {});
|
this._persisted_state = jQuery.extend({}, this._persisted_state || {});
|
||||||
this._persisted_state.grouping = this._build_grouping_state(
|
this._persisted_state.grouping = this._build_grouping_state(
|
||||||
this._get_default_grouping_state(), state);
|
this._get_default_grouping_state(), state);
|
||||||
this._save_persisted_state(this._persisted_state);
|
this._mark_grid_state_dirty();
|
||||||
this._force_rowdata_reset = true;
|
this._force_rowdata_reset = true;
|
||||||
this.display(this.get_selected_paths());
|
this.display(this.get_selected_paths());
|
||||||
this._render_column_menu();
|
this._render_column_menu();
|
||||||
@@ -24837,7 +25013,7 @@ function eval_pyson(value){
|
|||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
this._syncing_grid = false;
|
this._syncing_grid = false;
|
||||||
this._persist_grid_state();
|
this._mark_grid_state_dirty();
|
||||||
this._schedule_grid_layout_refresh();
|
this._schedule_grid_layout_refresh();
|
||||||
},
|
},
|
||||||
_sync_optional_columns_from_grid_state: function(column_states) {
|
_sync_optional_columns_from_grid_state: function(column_states) {
|
||||||
@@ -27439,7 +27615,7 @@ function eval_pyson(value){
|
|||||||
} else {
|
} else {
|
||||||
this.screen.order = [order[0]];
|
this.screen.order = [order[0]];
|
||||||
}
|
}
|
||||||
this._persist_grid_state();
|
this._mark_grid_state_dirty();
|
||||||
if (filter_model && Object.keys(filter_model).length) {
|
if (filter_model && Object.keys(filter_model).length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -28146,6 +28322,7 @@ function eval_pyson(value){
|
|||||||
var rect = this.grid_host[0].getBoundingClientRect();
|
var rect = this.grid_host[0].getBoundingClientRect();
|
||||||
var content_box = this.grid_host.closest('.content-box.ag-grid-content-box');
|
var content_box = this.grid_host.closest('.content-box.ag-grid-content-box');
|
||||||
var screen_container = this.grid_host.closest('.screen-container');
|
var screen_container = this.grid_host.closest('.screen-container');
|
||||||
|
var modal_body = this.grid_host.closest('.modal-body');
|
||||||
var toolbar_height = this.toolbar && this.toolbar.length ?
|
var toolbar_height = this.toolbar && this.toolbar.length ?
|
||||||
Math.ceil(this.toolbar.outerHeight(true)) : 0;
|
Math.ceil(this.toolbar.outerHeight(true)) : 0;
|
||||||
var summary_height = this.summary_bar && this.summary_bar.length ?
|
var summary_height = this.summary_bar && this.summary_bar.length ?
|
||||||
@@ -28161,9 +28338,14 @@ function eval_pyson(value){
|
|||||||
window.innerHeight - content_rect.top - toolbar_height -
|
window.innerHeight - content_rect.top - toolbar_height -
|
||||||
summary_height - external_scroll_height - bottom_margin);
|
summary_height - external_scroll_height - bottom_margin);
|
||||||
}
|
}
|
||||||
var compact_min_height = 260;
|
var embedded_auto_height = this.is_embedded_one2many &&
|
||||||
var readable_min_height = 420;
|
!this._embedded_height;
|
||||||
var maximum_height = 720;
|
var compact_min_height = (modal_body.length || embedded_auto_height) ?
|
||||||
|
170 : 260;
|
||||||
|
var readable_min_height = modal_body.length ? 240 :
|
||||||
|
(embedded_auto_height ? 220 : 420);
|
||||||
|
var maximum_height = modal_body.length ? 360 :
|
||||||
|
(embedded_auto_height ? 300 : 720);
|
||||||
var height;
|
var height;
|
||||||
if (this.is_embedded_one2many && this._embedded_height) {
|
if (this.is_embedded_one2many && this._embedded_height) {
|
||||||
height = Math.max(80, this._embedded_height - toolbar_height -
|
height = Math.max(80, this._embedded_height - toolbar_height -
|
||||||
|
|||||||
113
tryton-sao.css
113
tryton-sao.css
@@ -10237,25 +10237,35 @@ img.icon {
|
|||||||
}
|
}
|
||||||
.form fieldset.form-panel {
|
.form fieldset.form-panel {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border: 1px solid #d7e3de;
|
border: 0;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
box-shadow: 0 3px 10px rgba(30, 55, 58, 0.075);
|
box-shadow:
|
||||||
margin: 8px 0;
|
inset 0 0 0 1px #d3e1dc,
|
||||||
overflow: visible;
|
0 3px 10px rgba(30, 55, 58, 0.075);
|
||||||
padding: 14px 16px 16px;
|
margin: 4px 0;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: visible;
|
||||||
|
padding: 42px 16px 16px;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
.form fieldset.form-panel > legend {
|
.form fieldset.form-panel > legend {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
background: #fff;
|
||||||
border-bottom: 1px solid #e6eee9;
|
border-bottom: 1px solid #e6eee9;
|
||||||
color: #145369;
|
color: #145369;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
|
height: 25px;
|
||||||
|
left: 16px;
|
||||||
line-height: 1.35;
|
line-height: 1.35;
|
||||||
margin: 0 0 12px;
|
margin: 0;
|
||||||
padding: 0 0 9px;
|
padding: 0 0 8px;
|
||||||
width: 100%;
|
position: absolute;
|
||||||
|
right: 16px;
|
||||||
|
top: 12px;
|
||||||
|
width: auto;
|
||||||
}
|
}
|
||||||
.form fieldset.form-panel > legend .form-panel-icon {
|
.form fieldset.form-panel > legend .form-panel-icon {
|
||||||
height: 18px;
|
height: 18px;
|
||||||
@@ -10270,6 +10280,11 @@ img.icon {
|
|||||||
min-width: 0;
|
min-width: 0;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
.form fieldset.form-panel > .form-container > .form-item {
|
||||||
|
justify-self: stretch;
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
.form fieldset.form-panel .form-label {
|
.form fieldset.form-panel .form-label {
|
||||||
color: #4b5f60;
|
color: #4b5f60;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@@ -10285,16 +10300,59 @@ img.icon {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 10px 18px;
|
gap: 10px 18px;
|
||||||
}
|
}
|
||||||
|
.form fieldset.form-panel-summary > .form-container > .form-item {
|
||||||
|
align-items: center;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
.form fieldset.form-panel-summary .form-label {
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
.form fieldset.form-panel-sidebar {
|
.form fieldset.form-panel-sidebar {
|
||||||
box-shadow: 0 4px 14px rgba(30, 55, 58, 0.08);
|
box-shadow: 0 4px 14px rgba(30, 55, 58, 0.08);
|
||||||
|
padding: 32px 10px 9px;
|
||||||
}
|
}
|
||||||
.form fieldset.form-panel-sidebar > .form-container,
|
.form fieldset.form-panel-sidebar > .form-container,
|
||||||
.form .form-panel-sidebar-grid {
|
.form .form-panel-sidebar-grid {
|
||||||
gap: 8px 10px;
|
gap: 4px 8px;
|
||||||
}
|
}
|
||||||
.form fieldset.form-panel-sidebar .form-label {
|
.form fieldset.form-panel-sidebar .form-label {
|
||||||
color: #145369;
|
color: #145369;
|
||||||
font-size: 12px;
|
font-size: 11px;
|
||||||
|
line-height: 1.2;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.form fieldset.form-panel-sidebar .form-item {
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
.form fieldset.form-panel-sidebar input.form-control,
|
||||||
|
.form fieldset.form-panel-sidebar .input-group > .form-control,
|
||||||
|
.form fieldset.form-panel-sidebar .input-group-addon,
|
||||||
|
.form fieldset.form-panel-sidebar .selection {
|
||||||
|
background: transparent;
|
||||||
|
border-color: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
min-height: 20px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
padding-top: 1px;
|
||||||
|
}
|
||||||
|
.form fieldset.form-panel-sidebar input.form-control,
|
||||||
|
.form fieldset.form-panel-sidebar .input-group > .form-control {
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: 700;
|
||||||
|
height: 22px;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
.form fieldset.form-panel-sidebar .input-group-addon {
|
||||||
|
font-size: 11px;
|
||||||
|
height: 22px;
|
||||||
|
padding: 1px 4px;
|
||||||
|
}
|
||||||
|
.form fieldset#purchase_recap.form-panel-sidebar,
|
||||||
|
.form fieldset[id="purchase_recap"].form-panel-sidebar,
|
||||||
|
.form fieldset#sale_recap.form-panel-sidebar,
|
||||||
|
.form fieldset[id="sale_recap"].form-panel-sidebar {
|
||||||
|
min-height: 172px;
|
||||||
}
|
}
|
||||||
.form fieldset.form-panel-plain {
|
.form fieldset.form-panel-plain {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
@@ -11048,13 +11106,24 @@ body {
|
|||||||
html[theme="default"] .screen-container > .filter-box,
|
html[theme="default"] .screen-container > .filter-box,
|
||||||
html[theme="default"] .screen-container .content-box > .form,
|
html[theme="default"] .screen-container .content-box > .form,
|
||||||
html[theme="default"] .screen-container .content-box > form {
|
html[theme="default"] .screen-container .content-box > form {
|
||||||
background: linear-gradient(180deg, #f4f8f6 0%, #edf4f1 100%);
|
background: linear-gradient(180deg, #fbfcfb 0%, #f6faf8 100%);
|
||||||
border: 1px solid #dfe8e3;
|
border: 1px solid #dfe8e3;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
padding: 14px 16px 10px;
|
padding: 14px 16px 10px;
|
||||||
box-shadow: 0 3px 12px rgba(53, 81, 84, 0.06);
|
box-shadow: 0 3px 12px rgba(53, 81, 84, 0.06);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html[theme="default"] .form .tab-pane:has(> .form-container > .form-item > fieldset.form-panel) {
|
||||||
|
background: #f7faf8;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[theme="default"] .form .tab-pane:has(> .form-container > .form-item > fieldset.form-panel)
|
||||||
|
> .form-container {
|
||||||
|
gap: 4px 14px;
|
||||||
|
}
|
||||||
|
|
||||||
html[theme="default"] .screen-container .form-group {
|
html[theme="default"] .screen-container .form-group {
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
@@ -11084,6 +11153,28 @@ html[theme="default"] .screen-container input[type="search"]:not(.ag-grid-tree-p
|
|||||||
-webkit-box-shadow: inset 0 1px 2px rgba(53, 81, 84, 0.03);
|
-webkit-box-shadow: inset 0 1px 2px rgba(53, 81, 84, 0.03);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input.form-control:not([type="checkbox"]):not([type="radio"]),
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar select.form-control,
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar textarea.form-control,
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar .input-group > .form-control,
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar .input-group > .form-control[readonly],
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar .input-group-addon,
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input[type="text"]:not(.ag-grid-tree-panel-checkbox),
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input[type="date"]:not(.ag-grid-tree-panel-checkbox),
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input[type="datetime-local"]:not(.ag-grid-tree-panel-checkbox),
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input[type="number"]:not(.ag-grid-tree-panel-checkbox),
|
||||||
|
html[theme="default"] .screen-container .form fieldset.form-panel-sidebar input[type="search"]:not(.ag-grid-tree-panel-checkbox) {
|
||||||
|
background: transparent !important;
|
||||||
|
border-color: transparent !important;
|
||||||
|
box-shadow: none !important;
|
||||||
|
-webkit-box-shadow: none !important;
|
||||||
|
font-size: 11px !important;
|
||||||
|
font-weight: 700;
|
||||||
|
height: 22px !important;
|
||||||
|
min-height: 20px !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
html[theme="default"] .screen-container .input-group-sm.input-icon-primary > .form-control,
|
html[theme="default"] .screen-container .input-group-sm.input-icon-primary > .form-control,
|
||||||
html[theme="default"] .screen-container .input-icon-primary > .form-control {
|
html[theme="default"] .screen-container .input-icon-primary > .form-control {
|
||||||
padding-left: 33px;
|
padding-left: 33px;
|
||||||
|
|||||||
196
tryton-sao.js
196
tryton-sao.js
@@ -21313,6 +21313,167 @@ function eval_pyson(value){
|
|||||||
const json = value.slice(3);
|
const json = value.slice(3);
|
||||||
const config = JSON.parse(json); // doit contenir { highlightedCountry: '250' }
|
const config = JSON.parse(json); // doit contenir { highlightedCountry: '250' }
|
||||||
|
|
||||||
|
if (config.type === 'execution-summary') {
|
||||||
|
let d3Div = container.find('.d3-execution-summary-container');
|
||||||
|
if (d3Div.length === 0) {
|
||||||
|
d3Div = $('<div/>', {
|
||||||
|
class: 'd3-execution-summary-container',
|
||||||
|
css: {
|
||||||
|
width: '100%',
|
||||||
|
height: height.toString() + 'px',
|
||||||
|
overflow: 'hidden',
|
||||||
|
background: 'transparent'
|
||||||
|
}
|
||||||
|
}).appendTo(container);
|
||||||
|
} else {
|
||||||
|
d3Div.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
const loadD3ExecutionSummary = () => {
|
||||||
|
const node = d3Div[0];
|
||||||
|
const w = Math.max(300, node.clientWidth || width || 360);
|
||||||
|
const h = Math.max(125, height || 160);
|
||||||
|
const totals = config.totals || {};
|
||||||
|
const rows = config.rows || [];
|
||||||
|
const totalQty = Math.max(1, Number(totals.quantity || 0));
|
||||||
|
const matched = Number(totals.matched || 0);
|
||||||
|
const shipped = Number(totals.shipped || 0);
|
||||||
|
const matchedPct = Math.min(100, Math.round((matched / totalQty) * 100));
|
||||||
|
const shippedPct = Math.min(100, Math.round((shipped / totalQty) * 100));
|
||||||
|
const fmt = d3.format(',.0f');
|
||||||
|
const hasTitle = Boolean(config.title);
|
||||||
|
const statsY = hasTitle ? 30 : 8;
|
||||||
|
const barY = hasTitle ? 58 : 36;
|
||||||
|
const rowY = hasTitle ? 84 : 62;
|
||||||
|
const palette = {
|
||||||
|
matched: '#2b8c87',
|
||||||
|
shipped: '#145369',
|
||||||
|
open: '#dbe8e3',
|
||||||
|
text: '#24484d',
|
||||||
|
muted: '#6b7d7b',
|
||||||
|
line: '#e3ede8'
|
||||||
|
};
|
||||||
|
|
||||||
|
const svg = d3.select(node).append('svg')
|
||||||
|
.attr('width', w)
|
||||||
|
.attr('height', h)
|
||||||
|
.attr('viewBox', `0 0 ${w} ${h}`);
|
||||||
|
|
||||||
|
if (hasTitle) {
|
||||||
|
svg.append('text')
|
||||||
|
.attr('x', 4)
|
||||||
|
.attr('y', 15)
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 12)
|
||||||
|
.attr('font-weight', 700)
|
||||||
|
.attr('fill', palette.text)
|
||||||
|
.text(config.title);
|
||||||
|
}
|
||||||
|
|
||||||
|
const stats = [
|
||||||
|
{label: 'Lines', value: fmt(totals.lines || rows.length || 0)},
|
||||||
|
{label: 'Matched', value: matchedPct + '%'},
|
||||||
|
{label: 'Shipped', value: shippedPct + '%'}
|
||||||
|
];
|
||||||
|
const stat = svg.selectAll('g.stat')
|
||||||
|
.data(stats)
|
||||||
|
.join('g')
|
||||||
|
.attr('class', 'stat')
|
||||||
|
.attr('transform', (d, i) => `translate(${4 + i * Math.min(95, (w - 16) / 3)}, ${statsY})`);
|
||||||
|
stat.append('text')
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 10)
|
||||||
|
.attr('fill', palette.muted)
|
||||||
|
.text(d => d.label);
|
||||||
|
stat.append('text')
|
||||||
|
.attr('y', 16)
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 14)
|
||||||
|
.attr('font-weight', 700)
|
||||||
|
.attr('fill', palette.text)
|
||||||
|
.text(d => d.value);
|
||||||
|
|
||||||
|
const barX = 4;
|
||||||
|
const barW = Math.max(160, w - 8);
|
||||||
|
const barH = 8;
|
||||||
|
svg.append('rect')
|
||||||
|
.attr('x', barX)
|
||||||
|
.attr('y', barY)
|
||||||
|
.attr('width', barW)
|
||||||
|
.attr('height', barH)
|
||||||
|
.attr('rx', 4)
|
||||||
|
.attr('fill', palette.open);
|
||||||
|
svg.append('rect')
|
||||||
|
.attr('x', barX)
|
||||||
|
.attr('y', barY)
|
||||||
|
.attr('width', barW * Math.min(1, matched / totalQty))
|
||||||
|
.attr('height', barH)
|
||||||
|
.attr('rx', 4)
|
||||||
|
.attr('fill', palette.matched);
|
||||||
|
svg.append('rect')
|
||||||
|
.attr('x', barX)
|
||||||
|
.attr('y', barY)
|
||||||
|
.attr('width', barW * Math.min(1, shipped / totalQty))
|
||||||
|
.attr('height', barH)
|
||||||
|
.attr('rx', 4)
|
||||||
|
.attr('fill', palette.shipped);
|
||||||
|
|
||||||
|
const row = svg.selectAll('g.exec-row')
|
||||||
|
.data(rows.slice(0, 3))
|
||||||
|
.join('g')
|
||||||
|
.attr('class', 'exec-row')
|
||||||
|
.attr('transform', (d, i) => `translate(4, ${rowY + i * 24})`);
|
||||||
|
row.append('line')
|
||||||
|
.attr('x1', 0)
|
||||||
|
.attr('x2', w - 8)
|
||||||
|
.attr('y1', -8)
|
||||||
|
.attr('y2', -8)
|
||||||
|
.attr('stroke', palette.line);
|
||||||
|
row.append('text')
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 10)
|
||||||
|
.attr('font-weight', 700)
|
||||||
|
.attr('fill', palette.text)
|
||||||
|
.text(d => (d.product || 'Line').slice(0, 18));
|
||||||
|
row.append('text')
|
||||||
|
.attr('x', 170)
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 10)
|
||||||
|
.attr('fill', palette.muted)
|
||||||
|
.text(d => `${fmt(d.shipped || 0)}/${fmt(d.quantity || 0)} ${d.unit || ''}`);
|
||||||
|
row.append('text')
|
||||||
|
.attr('x', 250)
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 10)
|
||||||
|
.attr('fill', palette.muted)
|
||||||
|
.text(d => (d.route || '').slice(0, 32));
|
||||||
|
|
||||||
|
if (!rows.length) {
|
||||||
|
svg.append('text')
|
||||||
|
.attr('x', 4)
|
||||||
|
.attr('y', 90)
|
||||||
|
.attr('font-family', 'Inter, sans-serif')
|
||||||
|
.attr('font-size', 11)
|
||||||
|
.attr('fill', palette.muted)
|
||||||
|
.text('No purchase lines to summarize');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const ensureD3 = (cb) => {
|
||||||
|
if (typeof d3 !== 'undefined') {
|
||||||
|
cb();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const script = document.createElement('script');
|
||||||
|
script.src = 'https://d3js.org/d3.v7.min.js';
|
||||||
|
script.onload = cb;
|
||||||
|
document.head.appendChild(script);
|
||||||
|
};
|
||||||
|
|
||||||
|
ensureD3(loadD3ExecutionSummary);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Réutilise le conteneur si déjà présent
|
// Réutilise le conteneur si déjà présent
|
||||||
let d3Div = container.find('.d3-map-container');
|
let d3Div = container.find('.d3-map-container');
|
||||||
if (d3Div.length === 0) {
|
if (d3Div.length === 0) {
|
||||||
@@ -23181,9 +23342,24 @@ function eval_pyson(value){
|
|||||||
var save_options = this._pending_state_save_options || {};
|
var save_options = this._pending_state_save_options || {};
|
||||||
this._pending_state_save_options = null;
|
this._pending_state_save_options = null;
|
||||||
this._state_save_timer = null;
|
this._state_save_timer = null;
|
||||||
this._persist_grid_state(save_options);
|
this._mark_grid_state_dirty(save_options);
|
||||||
}, 80);
|
}, 80);
|
||||||
},
|
},
|
||||||
|
_mark_grid_state_dirty: function(options) {
|
||||||
|
options = options || {};
|
||||||
|
var state = this._capture_grid_state();
|
||||||
|
var active_preset = this._find_layout_preset(this._active_layout_id);
|
||||||
|
this._layout_dirty = active_preset ?
|
||||||
|
!Sao.common.compare(active_preset.state, state) :
|
||||||
|
!this._is_standard_layout_state(state);
|
||||||
|
this._render_column_menu();
|
||||||
|
this._render_grouping_panel();
|
||||||
|
this._render_layout_panel();
|
||||||
|
this._update_layout_button();
|
||||||
|
if (!options.skipLayoutRefresh) {
|
||||||
|
this._schedule_grid_layout_refresh();
|
||||||
|
}
|
||||||
|
},
|
||||||
_on_grid_column_layout_changed: function(options) {
|
_on_grid_column_layout_changed: function(options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
this._schedule_state_save(options);
|
this._schedule_state_save(options);
|
||||||
@@ -23672,7 +23848,7 @@ function eval_pyson(value){
|
|||||||
this._persisted_state = jQuery.extend({}, this._persisted_state || {});
|
this._persisted_state = jQuery.extend({}, this._persisted_state || {});
|
||||||
this._persisted_state.grouping = this._build_grouping_state(
|
this._persisted_state.grouping = this._build_grouping_state(
|
||||||
this._get_default_grouping_state(), state);
|
this._get_default_grouping_state(), state);
|
||||||
this._save_persisted_state(this._persisted_state);
|
this._mark_grid_state_dirty();
|
||||||
this._force_rowdata_reset = true;
|
this._force_rowdata_reset = true;
|
||||||
this.display(this.get_selected_paths());
|
this.display(this.get_selected_paths());
|
||||||
this._render_column_menu();
|
this._render_column_menu();
|
||||||
@@ -24837,7 +25013,7 @@ function eval_pyson(value){
|
|||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
this._syncing_grid = false;
|
this._syncing_grid = false;
|
||||||
this._persist_grid_state();
|
this._mark_grid_state_dirty();
|
||||||
this._schedule_grid_layout_refresh();
|
this._schedule_grid_layout_refresh();
|
||||||
},
|
},
|
||||||
_sync_optional_columns_from_grid_state: function(column_states) {
|
_sync_optional_columns_from_grid_state: function(column_states) {
|
||||||
@@ -27439,7 +27615,7 @@ function eval_pyson(value){
|
|||||||
} else {
|
} else {
|
||||||
this.screen.order = [order[0]];
|
this.screen.order = [order[0]];
|
||||||
}
|
}
|
||||||
this._persist_grid_state();
|
this._mark_grid_state_dirty();
|
||||||
if (filter_model && Object.keys(filter_model).length) {
|
if (filter_model && Object.keys(filter_model).length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -28146,6 +28322,7 @@ function eval_pyson(value){
|
|||||||
var rect = this.grid_host[0].getBoundingClientRect();
|
var rect = this.grid_host[0].getBoundingClientRect();
|
||||||
var content_box = this.grid_host.closest('.content-box.ag-grid-content-box');
|
var content_box = this.grid_host.closest('.content-box.ag-grid-content-box');
|
||||||
var screen_container = this.grid_host.closest('.screen-container');
|
var screen_container = this.grid_host.closest('.screen-container');
|
||||||
|
var modal_body = this.grid_host.closest('.modal-body');
|
||||||
var toolbar_height = this.toolbar && this.toolbar.length ?
|
var toolbar_height = this.toolbar && this.toolbar.length ?
|
||||||
Math.ceil(this.toolbar.outerHeight(true)) : 0;
|
Math.ceil(this.toolbar.outerHeight(true)) : 0;
|
||||||
var summary_height = this.summary_bar && this.summary_bar.length ?
|
var summary_height = this.summary_bar && this.summary_bar.length ?
|
||||||
@@ -28161,9 +28338,14 @@ function eval_pyson(value){
|
|||||||
window.innerHeight - content_rect.top - toolbar_height -
|
window.innerHeight - content_rect.top - toolbar_height -
|
||||||
summary_height - external_scroll_height - bottom_margin);
|
summary_height - external_scroll_height - bottom_margin);
|
||||||
}
|
}
|
||||||
var compact_min_height = 260;
|
var embedded_auto_height = this.is_embedded_one2many &&
|
||||||
var readable_min_height = 420;
|
!this._embedded_height;
|
||||||
var maximum_height = 720;
|
var compact_min_height = (modal_body.length || embedded_auto_height) ?
|
||||||
|
170 : 260;
|
||||||
|
var readable_min_height = modal_body.length ? 240 :
|
||||||
|
(embedded_auto_height ? 220 : 420);
|
||||||
|
var maximum_height = modal_body.length ? 360 :
|
||||||
|
(embedded_auto_height ? 300 : 720);
|
||||||
var height;
|
var height;
|
||||||
if (this.is_embedded_one2many && this._embedded_height) {
|
if (this.is_embedded_one2many && this._embedded_height) {
|
||||||
height = Math.max(80, this._embedded_height - toolbar_height -
|
height = Math.max(80, this._embedded_height - toolbar_height -
|
||||||
|
|||||||
Reference in New Issue
Block a user