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,8 +1006,8 @@
iframe.allowFullscreen = true;
iframe.setAttribute("allowfullscreen",""); // for IE11
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")
{
iframe.style.position = "fixed";

View file

@ -109,8 +109,12 @@
});
if (opts.hideonclick) {
var me = this;
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));

View file

@ -613,7 +613,8 @@ define([
this.view.turnChanges(state, global);
if (userId && this.userCollection) {
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;
},
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) {
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) );

View file

@ -1752,10 +1752,10 @@ define([
}
},
onExternalMessage: function(msg) {
onExternalMessage: function(msg, options) {
if (msg && msg.msg) {
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');
}
@ -2043,17 +2043,30 @@ define([
this._state.isDisconnected = true;
},
showTips: function(strings) {
showTips: function(strings, options) {
var me = this;
if (!strings.length) return;
if (typeof(strings)!='object') strings = [strings];
function closeTip(cmp){
me.tipTimeout && clearTimeout(me.tipTimeout);
setTimeout(showNextTip, 300);
}
function showNextTip() {
var str_tip = strings.shift();
if (str_tip) {
str_tip += '\n' + me.textCloseTip;
tooltip.setTitle(str_tip);
tooltip.show();
if (!(options && options.hideCloseTip))
str_tip += '\n' + me.textCloseTip;
me.tooltip.setTitle(str_tip);
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',
offset: 30
});
this.tooltip.on('tooltip:hideonclick',closeTip);
}
var tooltip = this.tooltip;
tooltip.on('tooltip:hide', function(){
setTimeout(showNextTip, 300);
});
showNextTip();
},

View file

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

View file

@ -184,6 +184,7 @@ define([
'protect:wslock': _.bind(me.onChangeProtectSheet, me)
});
Common.Gateway.on('processmouse', _.bind(me.onProcessMouse, me));
Common.Gateway.on('setactionlink', _.bind(me.onSetActionLink, me));
},
onCreateDelayedElements: function(view) {
@ -260,6 +261,7 @@ define([
view.tableTotalMenu.on('item:click', _.bind(me.onTotalMenuClick, me));
view.menuImgMacro.on('click', _.bind(me.onImgMacro, 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) {
var oleEditor = me.getApplication().getController('Common.Controllers.ExternalOleEditor').getView('Common.Views.ExternalOleEditor');
@ -1157,6 +1159,33 @@ define([
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() {
this.permissions.isEdit = false;
},
@ -2309,6 +2338,8 @@ define([
documentHolder.pmiAdvancedNumFormat.options.numformatinfo = documentHolder.pmiNumFormat.menu.options.numformatinfo = xfs.asc_getNumFormatInfo();
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) {
item.setDisabled(isCellLocked);
});
@ -2338,6 +2369,7 @@ define([
documentHolder.pmiEntriesList.setDisabled(isCellLocked || this._state.wsLock);
documentHolder.pmiAddNamedRange.setDisabled(isCellLocked || this._state.wsLock);
documentHolder.pmiAddComment.setDisabled(isCellLocked || this._state.wsProps['Objects']);
documentHolder.pmiGetRangeList.setDisabled(false);
if (inPivot) {
var canGroup = this.api.asc_canGroupPivot();
@ -2346,6 +2378,11 @@ define([
}
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) {
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',
txtDataTableHint: 'Returns the data cells of 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 || {}));
});

View file

@ -1523,10 +1523,10 @@ define([
}
},
onExternalMessage: function(msg) {
onExternalMessage: function(msg, options) {
if (msg && msg.msg) {
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');
}
@ -2009,17 +2009,30 @@ define([
this._state.isDisconnected = true;
},
showTips: function(strings) {
showTips: function(strings, options) {
var me = this;
if (!strings.length) return;
if (typeof(strings)!='object') strings = [strings];
function closeTip(cmp){
me.tipTimeout && clearTimeout(me.tipTimeout);
setTimeout(showNextTip, 300);
}
function showNextTip() {
var str_tip = strings.shift();
if (str_tip) {
str_tip += '\n' + me.textCloseTip;
tooltip.setTitle(str_tip);
tooltip.show();
if (!(options && options.hideCloseTip))
str_tip += '\n' + me.textCloseTip;
me.tooltip.setTitle(str_tip);
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',
offset: 30
});
this.tooltip.on('tooltip:hideonclick',closeTip);
}
var tooltip = this.tooltip;
tooltip.on('tooltip:hide', function(){
setTimeout(showNextTip, 300);
});
showNextTip();
},

View file

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

View file

@ -258,6 +258,16 @@ define([
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) {
if (settings) {
var me = this;

View file

@ -645,6 +645,7 @@
"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.txtWidth": "Width",
"SSE.Controllers.DocumentHolder.txtCopySuccess": "Link copied to the clipboard",
"SSE.Controllers.FormulaDialog.sCategoryAll": "All",
"SSE.Controllers.FormulaDialog.sCategoryCube": "Cube",
"SSE.Controllers.FormulaDialog.sCategoryDatabase": "Database",
@ -2051,6 +2052,7 @@
"SSE.Views.DocumentHolder.txtUngroup": "Ungroup",
"SSE.Views.DocumentHolder.txtWidth": "Width",
"SSE.Views.DocumentHolder.vertAlignText": "Vertical Alignment",
"SSE.Views.DocumentHolder.txtGetLink": "Get link to this range",
"SSE.Views.FieldSettingsDialog.strLayout": "Layout",
"SSE.Views.FieldSettingsDialog.strSubtotals": "Subtotals",
"SSE.Views.FieldSettingsDialog.textReport": "Report Form",