Add recent symbols

This commit is contained in:
OVSharova
2023-06-08 02:26:10 +03:00
parent 17dbd0846f
commit e2ff4c1e69
6 changed files with 216 additions and 96 deletions

View File

@ -2894,14 +2894,14 @@ define([
buttons: [{value: 'ok', caption: this.textInsert}, 'close'],
handler: function(dlg, result, settings) {
if (result == 'ok') {
me.api.asc_insertSymbol(settings.font ? settings.font : me.api.get_TextProps().get_TextPr().get_FontFamily().get_Name(), settings.code, settings.special);
me.insertSymbol(settings.font, settings.code, settings.special);
} else
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
}
});
me.dlgSymbolTable.show();
me.dlgSymbolTable.on('symbol:dblclick', function(cmp, result, settings) {
me.api.asc_insertSymbol(settings.font ? settings.font : me.api.get_TextProps().get_TextPr().get_FontFamily().get_Name(), settings.code, settings.special);
me.insertSymbol(settings.font, settings.code, settings.special);
});
me.dlgSymbolTable.on('close', function(obj){
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
@ -2911,7 +2911,13 @@ define([
onInsertSymbolItemClick: function(picker, item, record, e) {
if (this.api && record)
this.api.asc_insertSymbol(record.font ? record.get('font') : this.api.get_TextProps().get_TextPr().get_FontFamily().get_Name(), record.get('code'), record.get('special'));
this.insertSymbol(record.get('font'), record.get('symbol'), record.get('special'));
},
insertSymbol: function(fontRecord, symbol, special){
var font = fontRecord ? fontRecord: this.api.get_TextProps().get_TextPr().get_FontFamily().get_Name();
this.api.asc_insertSymbol(font, symbol, special);
this.toolbar.saveSymbol(symbol, font);
},
onApiMathTypes: function(equation) {

View File

@ -2362,7 +2362,7 @@ define([
}));
// set dataviews
this.symbolsArr = this.loadRecentSymbolsFromStorage();
this.mnuInsertSymbolsPicker = new Common.UI.DataView({
el: $('#id-toolbar-menu-symbols'),
parentMenu: this.btnInsertSymbol.menu,
@ -2370,34 +2370,8 @@ define([
restoreHeight: 290,
delayRenderTips: true,
scrollAlwaysVisible: true,
store: new Common.UI.DataViewStore([
{ symbol: '2022', code: 8226},
{ symbol: '20AC', code: 8364},
{ symbol: 'FF04', code: 65284},
{ symbol: '00A5', code: 165},
{ symbol: '00A9', code: 169},
{ symbol: '00AE', code: 174},
{ symbol: '00BD', code: 189},
{ symbol: '00BC', code: 188},
{ symbol: '2260', code: 8800},
{ symbol: '00B1', code: 177},
{ symbol: '00F7', code: 247},
{ symbol: '221A', code: 8730},
{ symbol: '2264', code: 8804},
{ symbol: '2265', code: 8805},
{ symbol: '2122', code: 8482},
{ symbol: '221E', code: 8734},
{ symbol: '007E', code: 126},
{ symbol: '00B0', code: 176},
{ symbol: '00A7', code: 167},
{ symbol: '03B1', code: 945},
{ symbol: '03B2', code: 946},
{ symbol: '03C0', code: 960},
{ symbol: '0394', code: 916},
{ symbol: '263A', code: 9786},
{ symbol: '2665', code: 9829}
]),
itemTemplate: _.template('<div id="s<%= symbol %>" class="item-symbol">&#<%= code %></a>')
store: new Common.UI.DataViewStore(this.symbolsArr),
itemTemplate: _.template('<div class="item-symbol" <% if (typeof font !== "undefined" && font !=="") { %> style ="font-family: <%= font %>"<% } %>>&#<%= symbol %></div>')
});
this.btnInsertSymbol.menu.setInnerMenu([{menu: this.mnuInsertSymbolsPicker, index: 0}]);
this.btnInsertSymbol.menu.on('show:before', _.bind(function() {
@ -2916,6 +2890,65 @@ define([
this.btnPageMargins.menu.items[0].setVisible(false);
},
loadRecentSymbolsFromStorage: function(){
var recents = Common.localStorage.getItem('de-fastRecentSymbols');
if(!!recents)
return JSON.parse(recents);
return [
{ symbol: 8226, font: 'Arial', tip: 'Symbol: 8226'},
{ symbol: 8364, font: 'Arial', tip: 'Symbol: 8364'},
{ symbol: 65284, font: 'Arial', tip: 'Symbol: 65284'},
{ symbol: 165, font: 'Arial', tip: 'Symbol: 165'},
{ symbol: 169, font: 'Arial', tip: 'Symbol: 169'},
{ symbol: 174, font: 'Arial', tip: 'Symbol: 174'},
{ symbol: 189, font: 'Arial', tip: 'Symbol: 189'},
{ symbol: 188, font: 'Arial', tip: 'Symbol: 188'},
{ symbol: 8800, font: 'Arial', tip: 'Symbol: 8800'},
{ symbol: 177, font: 'Arial', tip: 'Symbol: 177'},
{ symbol: 247, font: 'Arial', tip: 'Symbol: 247'},
{ symbol: 8730, font: 'Arial', tip: 'Symbol: 8730'},
{ symbol: 8804, font: 'Arial', tip: 'Symbol: 8804'},
{ symbol: 8805, font: 'Arial', tip: 'Symbol: 8805'},
{ symbol: 8482, font: 'Arial', tip: 'Symbol: 8482'},
{ symbol: 8734, font: 'Arial', tip: 'Symbol: 8734'},
{ symbol: 126, font: 'Arial', tip: 'Symbol: 126'},
{ symbol: 176, font: 'Arial', tip: 'Symbol: 176'},
{ symbol: 167, font: 'Arial', tip: 'Symbol: 167'},
{ symbol: 945, font: 'Arial', tip: 'Symbol: 945'},
{ symbol: 946, font: 'Arial', tip: 'Symbol: 946'},
{ symbol: 960, font: 'Arial', tip: 'Symbol: 960'},
{ symbol: 916, font: 'Arial', tip: 'Symbol: 916'},
{ symbol: 9786, font: 'Arial', tip: 'Symbol: 9786'},
{ symbol: 9829, font: 'Arial', tip: 'Symbol: 9829'}
];
},
saveSymbol: function(symbol, font) {
var maxLength =25;
if(this.symbolsArr.length === 0){
this.symbolsArr.push({symbol: symbol, font: font, tip: 'Symbol: ' + symbol});
this.saveRecentSymbolsToStorage();
return;
}
for(var i = 0; i < this.symbolsArr.length; ++i){
if(this.symbolsArr[i].symbol === symbol && this.symbolsArr[i].font === font){
this.symbolsArr.splice(i, 1);
break;
}
}
this.symbolsArr.splice(0, 0, {symbol: symbol, font: font, tip: 'Symbol: ' + symbol});
if(this.symbolsArr.length > maxLength){
this.symbolsArr.splice(maxLength, this.symbolsArr.length - maxLength);
}
this.saveRecentSymbolsToStorage();
},
saveRecentSymbolsToStorage: function(){
var sJSON = JSON.stringify(this.symbolsArr);
Common.localStorage.setItem( 'de-fastRecentSymbols', sJSON);
this.mnuInsertSymbolsPicker.store.reset(this.symbolsArr);
},
loadListPresetsFromStorage: function(path, groupId) {
var recents = Common.localStorage.getItem(path),
arr = [];

View File

@ -2352,21 +2352,26 @@ define([
symbol: selected && selected.length>0 ? selected.charAt(0) : undefined,
handler: function(dlg, result, settings) {
if (result == 'ok') {
me.api.asc_insertSymbol(settings.font ? settings.font : me.api.get_TextProps().get_TextPr().get_FontFamily().get_Name(), settings.code, settings.special);
me.insertSymbol(settings.font, settings.code, settings.special);
} else
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
}
});
win.show();
win.on('symbol:dblclick', function(cmp, result, settings) {
me.api.asc_insertSymbol(settings.font ? settings.font : me.api.get_TextProps().get_TextPr().get_FontFamily().get_Name(), settings.code, settings.special);
});
me.insertSymbol(settings.font, settings.code, settings.special); });
}
},
onInsertSymbolItemClick: function(picker, item, record, e) {
if (this.api && record)
this.api.asc_insertSymbol(record.font ? record.get('font') : this.api.get_TextProps().get_TextPr().get_FontFamily().get_Name(), record.get('code'), record.get('special'));
this.insertSymbol(record.get('font') , record.get('symbol'), record.get('special'));
},
insertSymbol: function(fontRecord, symbol, special){
var font = fontRecord ? fontRecord: this.api.get_TextProps().get_TextPr().get_FontFamily().get_Name();
this.api.asc_insertSymbol(font, symbol, special);
this.toolbar.saveSymbol(symbol, font);
},
onApiMathTypes: function(equation) {

View File

@ -1631,7 +1631,7 @@ define([
this.btnInsertTextArt.menu.on('show:before', onShowBeforeTextArt);
// set dataviews
this.symbolsArr = this.loadRecentSymbolsFromStorage();
this.mnuInsertSymbolsPicker = new Common.UI.DataView({
el: $('#id-toolbar-menu-symbols'),
parentMenu: this.btnInsertSymbol.menu,
@ -1639,34 +1639,8 @@ define([
restoreHeight: 290,
delayRenderTips: true,
scrollAlwaysVisible: true,
store: new Common.UI.DataViewStore([
{ symbol: '2022', code: 8226},
{ symbol: '20AC', code: 8364},
{ symbol: 'FF04', code: 65284},
{ symbol: '00A5', code: 165},
{ symbol: '00A9', code: 169},
{ symbol: '00AE', code: 174},
{ symbol: '00BD', code: 189},
{ symbol: '00BC', code: 188},
{ symbol: '2260', code: 8800},
{ symbol: '00B1', code: 177},
{ symbol: '00F7', code: 247},
{ symbol: '221A', code: 8730},
{ symbol: '2264', code: 8804},
{ symbol: '2265', code: 8805},
{ symbol: '2122', code: 8482},
{ symbol: '221E', code: 8734},
{ symbol: '007E', code: 126},
{ symbol: '00B0', code: 176},
{ symbol: '00A7', code: 167},
{ symbol: '03B1', code: 945},
{ symbol: '03B2', code: 946},
{ symbol: '03C0', code: 960},
{ symbol: '0394', code: 916},
{ symbol: '263A', code: 9786},
{ symbol: '2665', code: 9829}
]),
itemTemplate: _.template('<div id="s<%= symbol %>" class="item-symbol">&#<%= code %></a>')
store: new Common.UI.DataViewStore(this.symbolsArr),
itemTemplate: _.template('<div class="item-symbol" <% if (typeof font !== "undefined" && font !=="") { %> style ="font-family: <%= font %>"<% } %>>&#<%= symbol %></div>')
});
this.btnInsertSymbol.menu.setInnerMenu([{menu: this.mnuInsertSymbolsPicker, index: 0}]);
this.btnInsertSymbol.menu.on('show:before', _.bind(function() {
@ -2096,6 +2070,66 @@ define([
}
},
loadRecentSymbolsFromStorage: function(){
var recents = Common.localStorage.getItem('pe-fastRecentSymbols');
if(!!recents)
return JSON.parse(recents);
return [
{ symbol: 8226, font: 'Arial', tip: 'Symbol: 8226'},
{ symbol: 8364, font: 'Arial', tip: 'Symbol: 8364'},
{ symbol: 65284, font: 'Arial', tip: 'Symbol: 65284'},
{ symbol: 165, font: 'Arial', tip: 'Symbol: 165'},
{ symbol: 169, font: 'Arial', tip: 'Symbol: 169'},
{ symbol: 174, font: 'Arial', tip: 'Symbol: 174'},
{ symbol: 189, font: 'Arial', tip: 'Symbol: 189'},
{ symbol: 188, font: 'Arial', tip: 'Symbol: 188'},
{ symbol: 8800, font: 'Arial', tip: 'Symbol: 8800'},
{ symbol: 177, font: 'Arial', tip: 'Symbol: 177'},
{ symbol: 247, font: 'Arial', tip: 'Symbol: 247'},
{ symbol: 8730, font: 'Arial', tip: 'Symbol: 8730'},
{ symbol: 8804, font: 'Arial', tip: 'Symbol: 8804'},
{ symbol: 8805, font: 'Arial', tip: 'Symbol: 8805'},
{ symbol: 8482, font: 'Arial', tip: 'Symbol: 8482'},
{ symbol: 8734, font: 'Arial', tip: 'Symbol: 8734'},
{ symbol: 126, font: 'Arial', tip: 'Symbol: 126'},
{ symbol: 176, font: 'Arial', tip: 'Symbol: 176'},
{ symbol: 167, font: 'Arial', tip: 'Symbol: 167'},
{ symbol: 945, font: 'Arial', tip: 'Symbol: 945'},
{ symbol: 946, font: 'Arial', tip: 'Symbol: 946'},
{ symbol: 960, font: 'Arial', tip: 'Symbol: 960'},
{ symbol: 916, font: 'Arial', tip: 'Symbol: 916'},
{ symbol: 9786, font: 'Arial', tip: 'Symbol: 9786'},
{ symbol: 9829, font: 'Arial', tip: 'Symbol: 9829'}
];
},
saveSymbol: function(symbol, font) {
var maxLength =25;
if(this.symbolsArr.length === 0){
this.symbolsArr.push({symbol: symbol, font: font, tip: 'Symbol: ' + symbol});
this.saveRecentSymbolsToStorage();
return;
}
for(var i = 0; i < this.symbolsArr.length; ++i){
if(this.symbolsArr[i].symbol === symbol && this.symbolsArr[i].font === font){
this.symbolsArr.splice(i, 1);
break;
}
}
this.symbolsArr.splice(0, 0, {symbol: symbol, font: font, tip: 'Symbol: ' + symbol});
if(this.symbolsArr.length > maxLength){
this.symbolsArr.splice(maxLength, this.symbolsArr.length - maxLength);
}
this.saveRecentSymbolsToStorage();
},
saveRecentSymbolsToStorage: function(){
var sJSON = JSON.stringify(this.symbolsArr);
Common.localStorage.setItem( 'pe-fastRecentSymbols', sJSON);
this.mnuInsertSymbolsPicker.store.reset(this.symbolsArr);
},
textBold: 'Bold',
textItalic: 'Italic',
textUnderline: 'Underline',

View File

@ -4081,21 +4081,27 @@ define([
symbol: selected && selected.length>0 ? selected.charAt(0) : undefined,
handler: function(dlg, result, settings) {
if (result == 'ok') {
me.api.asc_insertSymbol(settings.font ? settings.font : me.api.asc_getCellInfo().asc_getXfs().asc_getFontName(), settings.code, settings.special);
me.insertSymbol(settings.font, settings.code, settings.special);
} else
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
}
});
win.show();
win.on('symbol:dblclick', function(cmp, result, settings) {
me.api.asc_insertSymbol(settings.font ? settings.font : me.api.asc_getCellInfo().asc_getXfs().asc_getFontName(), settings.code, settings.special);
me.insertSymbol(settings.font, settings.code, settings.special);
});
}
},
onInsertSymbolItemClick: function(picker, item, record, e) {
if (this.api && record)
this.api.asc_insertSymbol(record.font ? record.get('font') : this.api.asc_getCellInfo().asc_getXfs().asc_getFontName(), record.get('code'), record.get('special'));
this.insertSymbol(record.get('font'), record.get('symbol'), record.get('special'));
},
insertSymbol: function(fontRecord, symbol, special){
var font = fontRecord ? fontRecord: this.api.asc_getCellInfo().asc_getXfs().asc_getFontName();
this.api.asc_insertSymbol(font, symbol, special);
this.toolbar.saveSymbol(symbol, font);
},
onInsertSlicerClick: function() {

View File

@ -2759,6 +2759,8 @@ define([
this.btnInsertTextArt.menu.on('show:before', onShowBeforeTextArt);
}
this.symbolsArr = this.loadRecentSymbolsFromStorage();
this.mnuInsertSymbolsPicker = new Common.UI.DataView({
el: $('#id-toolbar-menu-symbols'),
parentMenu: this.btnInsertSymbol.menu,
@ -2766,34 +2768,8 @@ define([
restoreHeight: 290,
delayRenderTips: true,
scrollAlwaysVisible: true,
store: new Common.UI.DataViewStore([
{ symbol: '2022', code: 8226},
{ symbol: '20AC', code: 8364},
{ symbol: 'FF04', code: 65284},
{ symbol: '00A5', code: 165},
{ symbol: '00A9', code: 169},
{ symbol: '00AE', code: 174},
{ symbol: '00BD', code: 189},
{ symbol: '00BC', code: 188},
{ symbol: '2260', code: 8800},
{ symbol: '00B1', code: 177},
{ symbol: '00F7', code: 247},
{ symbol: '221A', code: 8730},
{ symbol: '2264', code: 8804},
{ symbol: '2265', code: 8805},
{ symbol: '2122', code: 8482},
{ symbol: '221E', code: 8734},
{ symbol: '007E', code: 126},
{ symbol: '00B0', code: 176},
{ symbol: '00A7', code: 167},
{ symbol: '03B1', code: 945},
{ symbol: '03B2', code: 946},
{ symbol: '03C0', code: 960},
{ symbol: '0394', code: 916},
{ symbol: '263A', code: 9786},
{ symbol: '2665', code: 9829}
]),
itemTemplate: _.template('<div id="s<%= symbol %>" class="item-symbol">&#<%= code %></a>')
store: new Common.UI.DataViewStore(this.symbolsArr),
itemTemplate: _.template('<div class="item-symbol" <% if (typeof font !== "undefined" && font !=="") { %> style ="font-family: <%= font %>"<% } %>>&#<%= symbol %></div>')
});
this.btnInsertSymbol.menu.setInnerMenu([{menu: this.mnuInsertSymbolsPicker, index: 0}]);
this.btnInsertSymbol.menu.on('show:before', _.bind(function() {
@ -3283,6 +3259,66 @@ define([
},
loadRecentSymbolsFromStorage: function(){
var recents = Common.localStorage.getItem('sse-fastRecentSymbols');
if(!!recents)
return JSON.parse(recents);
return [
{ symbol: 8226, font: 'Arial', tip: 'Symbol: 8226'},
{ symbol: 8364, font: 'Arial', tip: 'Symbol: 8364'},
{ symbol: 65284, font: 'Arial', tip: 'Symbol: 65284'},
{ symbol: 165, font: 'Arial', tip: 'Symbol: 165'},
{ symbol: 169, font: 'Arial', tip: 'Symbol: 169'},
{ symbol: 174, font: 'Arial', tip: 'Symbol: 174'},
{ symbol: 189, font: 'Arial', tip: 'Symbol: 189'},
{ symbol: 188, font: 'Arial', tip: 'Symbol: 188'},
{ symbol: 8800, font: 'Arial', tip: 'Symbol: 8800'},
{ symbol: 177, font: 'Arial', tip: 'Symbol: 177'},
{ symbol: 247, font: 'Arial', tip: 'Symbol: 247'},
{ symbol: 8730, font: 'Arial', tip: 'Symbol: 8730'},
{ symbol: 8804, font: 'Arial', tip: 'Symbol: 8804'},
{ symbol: 8805, font: 'Arial', tip: 'Symbol: 8805'},
{ symbol: 8482, font: 'Arial', tip: 'Symbol: 8482'},
{ symbol: 8734, font: 'Arial', tip: 'Symbol: 8734'},
{ symbol: 126, font: 'Arial', tip: 'Symbol: 126'},
{ symbol: 176, font: 'Arial', tip: 'Symbol: 176'},
{ symbol: 167, font: 'Arial', tip: 'Symbol: 167'},
{ symbol: 945, font: 'Arial', tip: 'Symbol: 945'},
{ symbol: 946, font: 'Arial', tip: 'Symbol: 946'},
{ symbol: 960, font: 'Arial', tip: 'Symbol: 960'},
{ symbol: 916, font: 'Arial', tip: 'Symbol: 916'},
{ symbol: 9786, font: 'Arial', tip: 'Symbol: 9786'},
{ symbol: 9829, font: 'Arial', tip: 'Symbol: 9829'}
];
},
saveSymbol: function(symbol, font) {
var maxLength =25;
if(this.symbolsArr.length === 0){
this.symbolsArr.push({symbol: symbol, font: font, tip: 'Symbol: ' + symbol});
this.saveRecentSymbolsToStorage();
return;
}
for(var i = 0; i < this.symbolsArr.length; ++i){
if(this.symbolsArr[i].symbol === symbol && this.symbolsArr[i].font === font){
this.symbolsArr.splice(i, 1);
break;
}
}
this.symbolsArr.splice(0, 0, {symbol: symbol, font: font, tip: 'Symbol: ' + symbol});
if(this.symbolsArr.length > maxLength){
this.symbolsArr.splice(maxLength, this.symbolsArr.length - maxLength);
}
this.saveRecentSymbolsToStorage();
},
saveRecentSymbolsToStorage: function(){
var sJSON = JSON.stringify(this.symbolsArr);
Common.localStorage.setItem( 'sse-fastRecentSymbols', sJSON);
this.mnuInsertSymbolsPicker.store.reset(this.symbolsArr);
},
textBold: 'Bold',
textItalic: 'Italic',
textUnderline: 'Underline',