mirror of
https://github.com/ONLYOFFICE/web-apps.git
synced 2026-07-26 13:50:49 +08:00
Recent langs: fix selecting current item
This commit is contained in:
@ -931,12 +931,10 @@ define([
|
||||
this.loadRecent();
|
||||
Common.UI.ComboBox.prototype.onBeforeShowMenu.apply(this, arguments);
|
||||
|
||||
if (this._selectedItem && this._selectedItem.get('isRecent')) {
|
||||
if (this._selectedItem) {// reselect item as the recent can be changed
|
||||
let obj,
|
||||
record = this.store.where((obj={}, obj[this.valueField]=this._selectedItem.get(this.valueField), obj));
|
||||
if (record && record.length) {
|
||||
this.selectRecord(record[record.length - 1]);
|
||||
}
|
||||
record = this.store.findWhere((obj={}, obj[this.valueField]=this._selectedItem.get(this.valueField), obj));
|
||||
record && this.selectRecord(record);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@ -1306,6 +1306,8 @@ define([
|
||||
if (!this.recentArr) {
|
||||
this.recentArr = [];
|
||||
}
|
||||
var checkedItem = _.findWhere(this.items, {checked: true});
|
||||
|
||||
this.clearRecent();
|
||||
|
||||
var me = this,
|
||||
@ -1319,6 +1321,12 @@ define([
|
||||
mnu && me.addItemToRecent(mnu, true, 0);
|
||||
});
|
||||
this.recentArr = arr;
|
||||
|
||||
if (checkedItem) {
|
||||
let obj,
|
||||
index = _.findIndex(me.items, (obj={}, obj[me.recent.valueField]=checkedItem[me.recent.valueField], obj));
|
||||
(index>-1) && me.setChecked(index, true, true);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -1377,11 +1385,12 @@ define([
|
||||
|
||||
onInsertRecentItem: function(item, index) {
|
||||
if (!this.cmpEl) return;
|
||||
var el = this.cmpEl.find('> li').eq(index || 0);
|
||||
el.before(_.template('<li><%= itemTemplate(item) %></li>')({
|
||||
var el = $(_.template('<li><%= itemTemplate(item) %></li>')({
|
||||
itemTemplate: this.itemTemplate,
|
||||
item: item
|
||||
}));
|
||||
this.cmpEl.find('> li').eq(index || 0).before(el);
|
||||
el && (item.el = el.find('> a'));
|
||||
},
|
||||
|
||||
onRemoveRecentItem: function(item) {
|
||||
|
||||
@ -237,7 +237,7 @@ define([
|
||||
if (this._currLang.id===null || this._currLang.id===undefined) {
|
||||
menu.clearAll();
|
||||
} else {
|
||||
var index = _.findLastIndex(menu.items, {langid: this._currLang.id});
|
||||
var index = _.findIndex(menu.items, {langid: this._currLang.id});
|
||||
(index>-1) && !menu.items[index].checked && menu.setChecked(index, true);
|
||||
}
|
||||
},
|
||||
|
||||
@ -408,7 +408,6 @@ define([
|
||||
value : item['value'],
|
||||
code : item['code'],
|
||||
checkable : true,
|
||||
checked : saved == item['displayValue'],
|
||||
spellcheck : item['spellcheck']
|
||||
});
|
||||
});
|
||||
@ -420,6 +419,8 @@ define([
|
||||
});
|
||||
this.langMenu.resetItems(arr);
|
||||
if (this.langMenu.items.length>0) {
|
||||
var index = _.findIndex(this.langMenu.items, {caption: saved});
|
||||
(index>-1) && this.langMenu.setChecked(index, true);
|
||||
var isProtected = this._state.docProtection.isReadOnly || this._state.docProtection.isFormsOnly || this._state.docProtection.isCommentsOnly;
|
||||
this.btnLanguage.setDisabled(this._isDisabled || !!this.mode.isDisconnected || isProtected);
|
||||
}
|
||||
@ -430,7 +431,7 @@ define([
|
||||
this.btnLanguage.setCaption(info.displayValue);
|
||||
this.langMenu.prevTip = info.value;
|
||||
|
||||
var index = _.findLastIndex(this.langMenu.items, {caption: info.displayValue});
|
||||
var index = _.findIndex(this.langMenu.items, {caption: info.displayValue});
|
||||
if (index>-1) {
|
||||
this.langMenu.setChecked(index, true);
|
||||
} else {
|
||||
|
||||
@ -96,7 +96,7 @@ define([
|
||||
if (me._currLang.id===null || me._currLang.id===undefined) {
|
||||
menu.clearAll();
|
||||
} else {
|
||||
var index = _.findLastIndex(menu.items, {langid: me._currLang.id});
|
||||
var index = _.findIndex(menu.items, {langid: me._currLang.id});
|
||||
(index>-1) && !menu.items[index].checked && menu.setChecked(index, true);
|
||||
}
|
||||
},
|
||||
|
||||
@ -357,7 +357,6 @@ define([
|
||||
value : item['value'],
|
||||
code : item['code'],
|
||||
checkable : true,
|
||||
checked : saved == item['displayValue'],
|
||||
spellcheck : item['spellcheck']
|
||||
});
|
||||
});
|
||||
@ -369,6 +368,8 @@ define([
|
||||
});
|
||||
this.langMenu.resetItems(arr);
|
||||
if (this.langMenu.items.length>0) {
|
||||
var index = _.findIndex(this.langMenu.items, {caption: saved});
|
||||
(index>-1) && this.langMenu.setChecked(index, true);
|
||||
this.btnLanguage.setDisabled(false || this._state.no_paragraph);
|
||||
}
|
||||
},
|
||||
@ -377,7 +378,7 @@ define([
|
||||
if (this.langMenu.prevTip != info.value && info.code !== undefined) {
|
||||
this.btnLanguage.setCaption(info.displayValue);
|
||||
this.langMenu.prevTip = info.value;
|
||||
var index = _.findLastIndex(this.langMenu.items, {caption: info.displayValue});
|
||||
var index = _.findIndex(this.langMenu.items, {caption: info.displayValue});
|
||||
if (index>-1) {
|
||||
this.langMenu.setChecked(index, true);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user