function getDropdown()
{
return zui.Dropdown.get('#versionDropdown-toggle');
}
window.afterRenderMenu = function(firstRender)
{
if(!firstRender) return;
const $exchangeBtn = $('#exchangeDiffBtn');
if(!$exchangeBtn.length) return;
const newVersion = $exchangeBtn.prev().find('.text').text().replace('#', '');
const oldVersion = $exchangeBtn.next().find('.text').text().replace('#', '');
const checked = {};
checked[newVersion] = true;
checked[oldVersion] = true;
this.setState({showCheckbox: true, checked: checked});
};
window.getVersionHeader = function()
{
if(this.props.items.length < 2) return;
const dropdown = getDropdown();
const actions =
[
{icon: 'exchange', text: dropdown.options.diffLang, className: this.state.showCheckbox ? 'invisible pointer-events-none' : 'text-primary', onClick: () => this.setState({showCheckbox: true})},
];
return {
component: 'Listitem',
style: {marginBottom: -6},
className: 'not-hide-menu',
props:
{
text: dropdown.options.allVersion,
titleClass: 'text-gray',
actions: actions,
},
};
}
window.getVersionFooter = function()
{
if(this.props.items.length < 2) return;
const dropdown = getDropdown();
return {
component: 'Toolbar',
props: {
gap: 4,
className: `p-1 pt-0${this.state.showCheckbox ? '' : ' hidden'}`,
items: [
{text: dropdown.options.confirmLang, size: 'sm', disabled: this.getChecks().length < 2, type: 'primary', onClick: () =>
{
const versions = this.getChecks();
const oldVersion = Math.min(...versions);
const newVersion = Math.max(...versions);
reloadView(newVersion, oldVersion);
const $toggle = $('#versionDropdown-toggle').removeClass('gray-pale').addClass('primary-pale rounded-r-none');
$('#docHeader .is-extra-version').remove();
$toggle.find('.text').text('#' + newVersion);
$toggle.after(
[
'',
``
].join(''));
this.setState({showCheckbox: true});
}
},
{text: dropdown.options.cancelDiff, size: 'sm', className: 'not-hide-menu', type: 'default', onClick: () => {this.setState({showCheckbox: false});}},
],
},
};
}
window.getDropdownItem = function(item)
{
if (!this.state.showCheckbox) return item;
const checked = !!this.state.checked[item.key];
item = $.extend({checked: checked}, item, {active: false, selected: item.checked});
if (!item.checked && item.disabled === undefined) {
const disabled = this.getChecks().length >= 2;
item = $.extend({disabled: disabled}, item);
}
return item;
}
window.onClickDropdownItem = function(info)
{
if(!this.state.showCheckbox) return;
info.event.stopPropagation();
info.event.preventDefault();
}
window.reloadView = function(newV, oldV)
{
const dropdown = getDropdown();
const param = 'objectType=' + dropdown.options.objectType + '&docID=' + dropdown.options.docID + '&newVersion=' + newV + '&oldVersion=' + oldV;
loadTarget($.createLink('doc', 'diff', param), '#docEditor');
}
window.flipVersion = function()
{
const $exchangeBtn = $('#exchangeDiffBtn');
$exchangeBtn.toggleClass('primary').toggleClass('primary-pale');
const newVersion = $exchangeBtn.prev().find('.text').text().replace('#', '');
const oldVersion = $exchangeBtn.next().find('.text').text().replace('#', '');
$exchangeBtn.prev().find('.text').text('#' + oldVersion);
$exchangeBtn.next().find('.text').text('#' + newVersion);
reloadView(oldVersion, newVersion);
}