Merge pull request #1800 from ONLYOFFICE/feature/sse-get-link

Feature/sse get link
This commit is contained in:
Julia Radzhabova 2022-06-16 14:42:26 +03:00 committed by GitHub
commit 2db9b044c5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 119 additions and 65 deletions

View file

@ -1006,7 +1006,7 @@
iframe.allowFullscreen = true; iframe.allowFullscreen = true;
iframe.setAttribute("allowfullscreen",""); // for IE11 iframe.setAttribute("allowfullscreen",""); // for IE11
iframe.setAttribute("onmousewheel",""); // for Safari on Mac iframe.setAttribute("onmousewheel",""); // for Safari on Mac
iframe.setAttribute("allow", "autoplay; camera; microphone; display-capture"); iframe.setAttribute("allow", "autoplay; camera; microphone; display-capture; clipboard-write;");
if (config.type == "mobile") if (config.type == "mobile")
{ {

View file

@ -109,8 +109,12 @@
}); });
if (opts.hideonclick) { if (opts.hideonclick) {
var me = this;
var tip = this.$element.data('bs.tooltip'); var tip = this.$element.data('bs.tooltip');
if (tip) tip.tip().on('click', function() {tip.hide();}); if (tip) tip.tip().on('click', function() {
tip.hide();
me.trigger('tooltip:hideonclick', this);
});
} }
this.$element.on('shown.bs.tooltip', _.bind(this.onTipShown, this)); this.$element.on('shown.bs.tooltip', _.bind(this.onTipShown, this));

View file

@ -613,7 +613,8 @@ define([
this.view.turnChanges(state, global); this.view.turnChanges(state, global);
if (userId && this.userCollection) { if (userId && this.userCollection) {
var rec = this.userCollection.findOriginalUser(userId); var rec = this.userCollection.findOriginalUser(userId);
rec && this.showTips(Common.Utils.String.format(globalFlag ? this.textOnGlobal : this.textOffGlobal, AscCommon.UserInfoParser.getParsedName(rec.get('username')))); rec && Common.NotificationCenter.trigger('showmessage', {msg: Common.Utils.String.format(globalFlag ? this.textOnGlobal : this.textOffGlobal, AscCommon.UserInfoParser.getParsedName(rec.get('username')))},
{timeout: 5000, hideCloseTip: true});
} }
} }
}, },
@ -903,41 +904,6 @@ define([
me.appConfig.reviewHoverMode = val; me.appConfig.reviewHoverMode = val;
}, },
showTips: function(strings) {
var me = this;
if (!strings.length) return;
if (typeof(strings)!='object') strings = [strings];
function showNextTip() {
var str_tip = strings.shift();
if (str_tip) {
me.tooltip.setTitle(str_tip);
me.tooltip.show();
me.tipTimeout = setTimeout(function () {
me.tooltip.hide();
}, 5000);
}
}
if (!this.tooltip) {
this.tooltip = new Common.UI.Tooltip({
owner: this.getApplication().getController('Toolbar').getView(),
hideonclick: true,
placement: 'bottom',
cls: 'main-info',
offset: 30
});
this.tooltip.on('tooltip:hide', function(cmp){
if (cmp==me.tooltip) {
clearTimeout(me.tipTimeout);
setTimeout(showNextTip, 300);
}
});
}
showNextTip();
},
applySettings: function(menu) { applySettings: function(menu) {
this.view && this.view.turnSpelling( Common.localStorage.getBool(this.view.appPrefix + "settings-spellcheck", true) ); this.view && this.view.turnSpelling( Common.localStorage.getBool(this.view.appPrefix + "settings-spellcheck", true) );
this.view && this.view.turnCoAuthMode( Common.localStorage.getBool(this.view.appPrefix + "settings-coauthmode", true) ); this.view && this.view.turnCoAuthMode( Common.localStorage.getBool(this.view.appPrefix + "settings-coauthmode", true) );

View file

@ -1752,10 +1752,10 @@ define([
} }
}, },
onExternalMessage: function(msg) { onExternalMessage: function(msg, options) {
if (msg && msg.msg) { if (msg && msg.msg) {
msg.msg = (msg.msg).toString(); msg.msg = (msg.msg).toString();
this.showTips([msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)]); this.showTips([msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)], options);
Common.component.Analytics.trackEvent('External Error'); Common.component.Analytics.trackEvent('External Error');
} }
@ -2043,17 +2043,30 @@ define([
this._state.isDisconnected = true; this._state.isDisconnected = true;
}, },
showTips: function(strings) { showTips: function(strings, options) {
var me = this; var me = this;
if (!strings.length) return; if (!strings.length) return;
if (typeof(strings)!='object') strings = [strings]; if (typeof(strings)!='object') strings = [strings];
function closeTip(cmp){
me.tipTimeout && clearTimeout(me.tipTimeout);
setTimeout(showNextTip, 300);
}
function showNextTip() { function showNextTip() {
var str_tip = strings.shift(); var str_tip = strings.shift();
if (str_tip) { if (str_tip) {
if (!(options && options.hideCloseTip))
str_tip += '\n' + me.textCloseTip; str_tip += '\n' + me.textCloseTip;
tooltip.setTitle(str_tip); me.tooltip.setTitle(str_tip);
tooltip.show(); me.tooltip.show();
me.tipTimeout && clearTimeout(me.tipTimeout);
if (options && options.timeout) {
me.tipTimeout = setTimeout(function () {
me.tooltip.hide();
closeTip();
}, options.timeout);
}
} }
} }
@ -2065,13 +2078,9 @@ define([
cls: 'main-info', cls: 'main-info',
offset: 30 offset: 30
}); });
this.tooltip.on('tooltip:hideonclick',closeTip);
} }
var tooltip = this.tooltip;
tooltip.on('tooltip:hide', function(){
setTimeout(showNextTip, 300);
});
showNextTip(); showNextTip();
}, },

View file

@ -1667,7 +1667,7 @@ define([
} }
var tooltip = this.tooltip; var tooltip = this.tooltip;
tooltip.on('tooltip:hide', function(){ tooltip.on('tooltip:hideonclick', function(){
setTimeout(showNextTip, 300); setTimeout(showNextTip, 300);
}); });

View file

@ -184,6 +184,7 @@ define([
'protect:wslock': _.bind(me.onChangeProtectSheet, me) 'protect:wslock': _.bind(me.onChangeProtectSheet, me)
}); });
Common.Gateway.on('processmouse', _.bind(me.onProcessMouse, me)); Common.Gateway.on('processmouse', _.bind(me.onProcessMouse, me));
Common.Gateway.on('setactionlink', _.bind(me.onSetActionLink, me));
}, },
onCreateDelayedElements: function(view) { onCreateDelayedElements: function(view) {
@ -260,6 +261,7 @@ define([
view.tableTotalMenu.on('item:click', _.bind(me.onTotalMenuClick, me)); view.tableTotalMenu.on('item:click', _.bind(me.onTotalMenuClick, me));
view.menuImgMacro.on('click', _.bind(me.onImgMacro, me)); view.menuImgMacro.on('click', _.bind(me.onImgMacro, me));
view.menuImgEditPoints.on('click', _.bind(me.onImgEditPoints, me)); view.menuImgEditPoints.on('click', _.bind(me.onImgEditPoints, me));
view.pmiGetRangeList.on('click', _.bind(me.onGetLink, me));
if (!me.permissions.isEditMailMerge && !me.permissions.isEditDiagram && !me.permissions.isEditOle) { if (!me.permissions.isEditMailMerge && !me.permissions.isEditDiagram && !me.permissions.isEditOle) {
var oleEditor = me.getApplication().getController('Common.Controllers.ExternalOleEditor').getView('Common.Views.ExternalOleEditor'); var oleEditor = me.getApplication().getController('Common.Controllers.ExternalOleEditor').getView('Common.Views.ExternalOleEditor');
@ -1157,6 +1159,33 @@ define([
this.api && this.api.asc_editPointsGeometry(); this.api && this.api.asc_editPointsGeometry();
}, },
onGetLink: function(item) {
if (this.api) {
var range = this.api.asc_getActiveRangeStr(Asc.referenceType.A, false, true),
name = this.api.asc_getEscapeSheetName(this.api.asc_getWorksheetName(this.api.asc_getActiveWorksheetIndex()));
name = (name + ((name!=='' && range!=='') ? '!' : '') + range);
name && Common.Gateway.requestMakeActionLink({
action: {
type: "internallink", data: name
}
});
}
},
onSetActionLink: function (url) {
if (Common.Utils.InternalSettings.get("sse-dialog-link-visible"))
return;
var me = this;
navigator.clipboard && navigator.clipboard.writeText(url)
.then(function() {
Common.NotificationCenter.trigger('showmessage', {msg: me.txtCopySuccess}, {timeout: 3000, hideCloseTip: true});
})
.catch(function(err) {
console.log(err);
});
},
onApiCoAuthoringDisconnect: function() { onApiCoAuthoringDisconnect: function() {
this.permissions.isEdit = false; this.permissions.isEdit = false;
}, },
@ -2309,6 +2338,8 @@ define([
documentHolder.pmiAdvancedNumFormat.options.numformatinfo = documentHolder.pmiNumFormat.menu.options.numformatinfo = xfs.asc_getNumFormatInfo(); documentHolder.pmiAdvancedNumFormat.options.numformatinfo = documentHolder.pmiNumFormat.menu.options.numformatinfo = xfs.asc_getNumFormatInfo();
documentHolder.pmiAdvancedNumFormat.options.numformat = xfs.asc_getNumFormat(); documentHolder.pmiAdvancedNumFormat.options.numformat = xfs.asc_getNumFormat();
documentHolder.pmiGetRangeList.setVisible(!Common.Utils.isIE && iscellmenu && !iscelledit && !ismultiselect && !internaleditor && this.permissions.canMakeActionLink && !!navigator.clipboard);
_.each(documentHolder.ssMenu.items, function(item) { _.each(documentHolder.ssMenu.items, function(item) {
item.setDisabled(isCellLocked); item.setDisabled(isCellLocked);
}); });
@ -2338,6 +2369,7 @@ define([
documentHolder.pmiEntriesList.setDisabled(isCellLocked || this._state.wsLock); documentHolder.pmiEntriesList.setDisabled(isCellLocked || this._state.wsLock);
documentHolder.pmiAddNamedRange.setDisabled(isCellLocked || this._state.wsLock); documentHolder.pmiAddNamedRange.setDisabled(isCellLocked || this._state.wsLock);
documentHolder.pmiAddComment.setDisabled(isCellLocked || this._state.wsProps['Objects']); documentHolder.pmiAddComment.setDisabled(isCellLocked || this._state.wsProps['Objects']);
documentHolder.pmiGetRangeList.setDisabled(false);
if (inPivot) { if (inPivot) {
var canGroup = this.api.asc_canGroupPivot(); var canGroup = this.api.asc_canGroupPivot();
@ -2346,6 +2378,11 @@ define([
} }
if (showMenu) this.showPopupMenu(documentHolder.ssMenu, {}, event); if (showMenu) this.showPopupMenu(documentHolder.ssMenu, {}, event);
documentHolder.pmiFunctionSeparator.setVisible(documentHolder.pmiInsFunction.isVisible() || documentHolder.menuAddHyperlink.isVisible() || documentHolder.menuHyperlink.isVisible() ||
isrowmenu || iscolmenu || isallmenu);
documentHolder.pmiFreezeSeparator.setVisible(documentHolder.pmiFreezePanes.isVisible());
} else if (this.permissions.isEditDiagram && seltype == Asc.c_oAscSelectionType.RangeChartText) { } else if (this.permissions.isEditDiagram && seltype == Asc.c_oAscSelectionType.RangeChartText) {
if (!showMenu && !documentHolder.textInShapeMenu.isVisible()) return; if (!showMenu && !documentHolder.textInShapeMenu.isVisible()) return;
@ -4345,7 +4382,8 @@ define([
txtAllTableHint: 'Returns the entire contents of the table or specified table columns including column headers, data and total rows', txtAllTableHint: 'Returns the entire contents of the table or specified table columns including column headers, data and total rows',
txtDataTableHint: 'Returns the data cells of the table or specified table columns', txtDataTableHint: 'Returns the data cells of the table or specified table columns',
txtHeadersTableHint: 'Returns the column headers for the table or specified table columns', txtHeadersTableHint: 'Returns the column headers for the table or specified table columns',
txtTotalsTableHint: 'Returns the total rows for the table or specified table columns' txtTotalsTableHint: 'Returns the total rows for the table or specified table columns',
txtCopySuccess: 'Link copied to the clipboard'
}, SSE.Controllers.DocumentHolder || {})); }, SSE.Controllers.DocumentHolder || {}));
}); });

View file

@ -1523,10 +1523,10 @@ define([
} }
}, },
onExternalMessage: function(msg) { onExternalMessage: function(msg, options) {
if (msg && msg.msg) { if (msg && msg.msg) {
msg.msg = (msg.msg).toString(); msg.msg = (msg.msg).toString();
this.showTips([msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)]); this.showTips([msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)], options);
Common.component.Analytics.trackEvent('External Error'); Common.component.Analytics.trackEvent('External Error');
} }
@ -2009,17 +2009,30 @@ define([
this._state.isDisconnected = true; this._state.isDisconnected = true;
}, },
showTips: function(strings) { showTips: function(strings, options) {
var me = this; var me = this;
if (!strings.length) return; if (!strings.length) return;
if (typeof(strings)!='object') strings = [strings]; if (typeof(strings)!='object') strings = [strings];
function closeTip(cmp){
me.tipTimeout && clearTimeout(me.tipTimeout);
setTimeout(showNextTip, 300);
}
function showNextTip() { function showNextTip() {
var str_tip = strings.shift(); var str_tip = strings.shift();
if (str_tip) { if (str_tip) {
if (!(options && options.hideCloseTip))
str_tip += '\n' + me.textCloseTip; str_tip += '\n' + me.textCloseTip;
tooltip.setTitle(str_tip); me.tooltip.setTitle(str_tip);
tooltip.show(); me.tooltip.show();
me.tipTimeout && clearTimeout(me.tipTimeout);
if (options && options.timeout) {
me.tipTimeout = setTimeout(function () {
me.tooltip.hide();
closeTip();
}, options.timeout);
}
} }
} }
@ -2031,13 +2044,9 @@ define([
cls: 'main-info', cls: 'main-info',
offset: 30 offset: 30
}); });
this.tooltip.on('tooltip:hideonclick',closeTip);
} }
var tooltip = this.tooltip;
tooltip.on('tooltip:hide', function(){
setTimeout(showNextTip, 300);
});
showNextTip(); showNextTip();
}, },

View file

@ -418,6 +418,14 @@ define([
me.pmiCellMenuSeparator = new Common.UI.MenuItem({ me.pmiCellMenuSeparator = new Common.UI.MenuItem({
caption : '--' caption : '--'
})
me.pmiFunctionSeparator = new Common.UI.MenuItem({
caption : '--'
});
me.pmiFreezeSeparator = new Common.UI.MenuItem({
caption : '--'
}); });
me.pmiAddNamedRange = new Common.UI.MenuItem({ me.pmiAddNamedRange = new Common.UI.MenuItem({
@ -550,6 +558,10 @@ define([
caption : me.txtCondFormat caption : me.txtCondFormat
}); });
me.pmiGetRangeList = new Common.UI.MenuItem({
caption : me.txtGetLink
});
me.ssMenu = new Common.UI.Menu({ me.ssMenu = new Common.UI.Menu({
cls: 'shifted-right', cls: 'shifted-right',
restoreHeightAndTop: true, restoreHeightAndTop: true,
@ -580,7 +592,9 @@ define([
me.pmiNumFormat, me.pmiNumFormat,
me.pmiCondFormat, me.pmiCondFormat,
me.pmiEntriesList, me.pmiEntriesList,
me.pmiGetRangeList,
me.pmiAddNamedRange, me.pmiAddNamedRange,
me.pmiFunctionSeparator,
me.pmiInsFunction, me.pmiInsFunction,
me.menuAddHyperlink, me.menuAddHyperlink,
me.menuHyperlink, me.menuHyperlink,
@ -588,6 +602,7 @@ define([
me.pmiColumnWidth, me.pmiColumnWidth,
me.pmiEntireHide, me.pmiEntireHide,
me.pmiEntireShow, me.pmiEntireShow,
me.pmiFreezeSeparator,
me.pmiFreezePanes me.pmiFreezePanes
] ]
}); });
@ -1303,7 +1318,8 @@ define([
tipMarkersFRhombus: 'Filled rhombus bullets', tipMarkersFRhombus: 'Filled rhombus bullets',
tipMarkersDash: 'Dash bullets', tipMarkersDash: 'Dash bullets',
chartDataText: 'Select Chart Data', chartDataText: 'Select Chart Data',
chartTypeText: 'Change Chart Type' chartTypeText: 'Change Chart Type',
txtGetLink: 'Get link to this range'
}, SSE.Views.DocumentHolder || {})); }, SSE.Views.DocumentHolder || {}));
}); });

View file

@ -258,6 +258,16 @@ define([
return [this.inputUrl, this.internalList, this.inputRange, this.inputDisplay, this.inputTip]; return [this.inputUrl, this.internalList, this.inputRange, this.inputDisplay, this.inputTip];
}, },
show: function() {
Common.UI.Window.prototype.show.apply(this, arguments);
Common.Utils.InternalSettings.set("sse-dialog-link-visible", true);
},
close: function() {
Common.Utils.InternalSettings.set("sse-dialog-link-visible", false);
Common.UI.Window.prototype.close.apply(this, arguments);
},
setSettings: function(settings) { setSettings: function(settings) {
if (settings) { if (settings) {
var me = this; var me = this;

View file

@ -645,6 +645,7 @@
"SSE.Controllers.DocumentHolder.txtUseTextImport": "Use text import wizard", "SSE.Controllers.DocumentHolder.txtUseTextImport": "Use text import wizard",
"SSE.Controllers.DocumentHolder.txtWarnUrl": "Clicking this link can be harmful to your device and data.<br>Are you sure you want to continue?", "SSE.Controllers.DocumentHolder.txtWarnUrl": "Clicking this link can be harmful to your device and data.<br>Are you sure you want to continue?",
"SSE.Controllers.DocumentHolder.txtWidth": "Width", "SSE.Controllers.DocumentHolder.txtWidth": "Width",
"SSE.Controllers.DocumentHolder.txtCopySuccess": "Link copied to the clipboard",
"SSE.Controllers.FormulaDialog.sCategoryAll": "All", "SSE.Controllers.FormulaDialog.sCategoryAll": "All",
"SSE.Controllers.FormulaDialog.sCategoryCube": "Cube", "SSE.Controllers.FormulaDialog.sCategoryCube": "Cube",
"SSE.Controllers.FormulaDialog.sCategoryDatabase": "Database", "SSE.Controllers.FormulaDialog.sCategoryDatabase": "Database",
@ -2051,6 +2052,7 @@
"SSE.Views.DocumentHolder.txtUngroup": "Ungroup", "SSE.Views.DocumentHolder.txtUngroup": "Ungroup",
"SSE.Views.DocumentHolder.txtWidth": "Width", "SSE.Views.DocumentHolder.txtWidth": "Width",
"SSE.Views.DocumentHolder.vertAlignText": "Vertical Alignment", "SSE.Views.DocumentHolder.vertAlignText": "Vertical Alignment",
"SSE.Views.DocumentHolder.txtGetLink": "Get link to this range",
"SSE.Views.FieldSettingsDialog.strLayout": "Layout", "SSE.Views.FieldSettingsDialog.strLayout": "Layout",
"SSE.Views.FieldSettingsDialog.strSubtotals": "Subtotals", "SSE.Views.FieldSettingsDialog.strSubtotals": "Subtotals",
"SSE.Views.FieldSettingsDialog.textReport": "Report Form", "SSE.Views.FieldSettingsDialog.textReport": "Report Form",