diff --git a/apps/common/main/lib/component/ComboBox.js b/apps/common/main/lib/component/ComboBox.js
index 09e02e8491..c6352f8c60 100644
--- a/apps/common/main/lib/component/ComboBox.js
+++ b/apps/common/main/lib/component/ComboBox.js
@@ -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);
}
},
diff --git a/apps/common/main/lib/component/Menu.js b/apps/common/main/lib/component/Menu.js
index b63fced36f..e185c14dfd 100644
--- a/apps/common/main/lib/component/Menu.js
+++ b/apps/common/main/lib/component/Menu.js
@@ -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('
<%= itemTemplate(item) %>')({
+ var el = $(_.template('<%= itemTemplate(item) %>')({
itemTemplate: this.itemTemplate,
item: item
}));
+ this.cmpEl.find('> li').eq(index || 0).before(el);
+ el && (item.el = el.find('> a'));
},
onRemoveRecentItem: function(item) {
diff --git a/apps/documenteditor/main/app/view/DocumentHolder.js b/apps/documenteditor/main/app/view/DocumentHolder.js
index 9c58bfef51..b2101d737c 100644
--- a/apps/documenteditor/main/app/view/DocumentHolder.js
+++ b/apps/documenteditor/main/app/view/DocumentHolder.js
@@ -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);
}
},
diff --git a/apps/documenteditor/main/app/view/Statusbar.js b/apps/documenteditor/main/app/view/Statusbar.js
index e6d6fc1cd3..15bc65c39b 100644
--- a/apps/documenteditor/main/app/view/Statusbar.js
+++ b/apps/documenteditor/main/app/view/Statusbar.js
@@ -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 {
diff --git a/apps/presentationeditor/main/app/view/DocumentHolder.js b/apps/presentationeditor/main/app/view/DocumentHolder.js
index ce56f49a15..36cc26eb19 100644
--- a/apps/presentationeditor/main/app/view/DocumentHolder.js
+++ b/apps/presentationeditor/main/app/view/DocumentHolder.js
@@ -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);
}
},
diff --git a/apps/presentationeditor/main/app/view/Statusbar.js b/apps/presentationeditor/main/app/view/Statusbar.js
index cbf1811c63..1386d4759c 100644
--- a/apps/presentationeditor/main/app/view/Statusbar.js
+++ b/apps/presentationeditor/main/app/view/Statusbar.js
@@ -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 {