Merge pull request #151 from ONLYOFFICE/feature/bookmark-link

Feature/bookmark link
This commit is contained in:
Julia Radzhabova 2019-03-18 16:14:04 +03:00 committed by GitHub
commit b9cb50d0c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 66 additions and 8 deletions

View file

@ -197,6 +197,7 @@
_config.editorConfig.canRequestEditRights = _config.events && !!_config.events.onRequestEditRights; _config.editorConfig.canRequestEditRights = _config.events && !!_config.events.onRequestEditRights;
_config.editorConfig.canRequestClose = _config.events && !!_config.events.onRequestClose; _config.editorConfig.canRequestClose = _config.events && !!_config.events.onRequestClose;
_config.editorConfig.canRename = _config.events && !!_config.events.onRequestRename; _config.editorConfig.canRename = _config.events && !!_config.events.onRequestRename;
_config.editorConfig.canMakeActionLink = _config.events && !!_config.events.onMakeActionLink;
_config.editorConfig.mergeFolderUrl = _config.editorConfig.mergeFolderUrl || _config.editorConfig.saveAsUrl; _config.editorConfig.mergeFolderUrl = _config.editorConfig.mergeFolderUrl || _config.editorConfig.saveAsUrl;
_config.frameEditorId = placeholderId; _config.frameEditorId = placeholderId;
@ -509,6 +510,15 @@
}); });
}; };
var _setActionLink = function (data) {
_sendCommand({
command: 'setActionLink',
data: {
url: data
}
});
};
var _processMailMerge = function(enabled, message) { var _processMailMerge = function(enabled, message) {
_sendCommand({ _sendCommand({
command: 'processMailMerge', command: 'processMailMerge',
@ -559,6 +569,7 @@
refreshHistory : _refreshHistory, refreshHistory : _refreshHistory,
setHistoryData : _setHistoryData, setHistoryData : _setHistoryData,
setEmailAddresses : _setEmailAddresses, setEmailAddresses : _setEmailAddresses,
setActionLink : _setActionLink,
processMailMerge : _processMailMerge, processMailMerge : _processMailMerge,
downloadAs : _downloadAs, downloadAs : _downloadAs,
serviceCommand : _serviceCommand, serviceCommand : _serviceCommand,

View file

@ -76,6 +76,10 @@ if (Common === undefined) {
$me.trigger('setemailaddresses', data); $me.trigger('setemailaddresses', data);
}, },
'setActionLink': function (data) {
$me.trigger('setactionlink', data.url);
},
'processMailMerge': function(data) { 'processMailMerge': function(data) {
$me.trigger('processmailmerge', data); $me.trigger('processmailmerge', data);
}, },
@ -254,6 +258,10 @@ if (Common === undefined) {
_postMessage({event: 'onRequestClose'}); _postMessage({event: 'onRequestClose'});
}, },
requestMakeActionLink: function (config) {
_postMessage({event:'onMakeActionLink', data: config})
},
on: function(event, handler){ on: function(event, handler){
var localHandler = function(event, data){ var localHandler = function(event, data){
handler.call(me, data) handler.call(me, data)

View file

@ -78,6 +78,16 @@ define([
this._state = { this._state = {
prcontrolsdisable:undefined prcontrolsdisable:undefined
}; };
Common.Gateway.on('setactionlink', function (url) {
var copytext = document.createElement('input');
copytext.value = url;
document.body.appendChild(copytext);
copytext.select();
try {
document.execCommand("copy");
} catch (err) {}
document.body.removeChild(copytext);
});
}, },
setApi: function (api) { setApi: function (api) {
@ -325,6 +335,7 @@ define([
var me = this; var me = this;
(new DE.Views.BookmarksDialog({ (new DE.Views.BookmarksDialog({
api: me.api, api: me.api,
appOptions: me.toolbar.appOptions,
props: me.api.asc_GetBookmarksManager(), props: me.api.asc_GetBookmarksManager(),
handler: function (result, settings) { handler: function (result, settings) {
if (settings) { if (settings) {

View file

@ -332,6 +332,7 @@ define([
this.appOptions.canBack = this.appOptions.canBackToFolder === true; this.appOptions.canBack = this.appOptions.canBackToFolder === true;
this.appOptions.canPlugins = false; this.appOptions.canPlugins = false;
this.plugins = this.editorConfig.plugins; this.plugins = this.editorConfig.plugins;
this.appOptions.canMakeActionLink = this.editorConfig.canMakeActionLink;
appHeader = this.getApplication().getController('Viewport').getView('Common.Views.Header'); appHeader = this.getApplication().getController('Viewport').getView('Common.Views.Header');
appHeader.setCanBack(this.appOptions.canBackToFolder === true, (this.appOptions.canBackToFolder) ? this.editorConfig.customization.goback.text : '') appHeader.setCanBack(this.appOptions.canBackToFolder === true, (this.appOptions.canBackToFolder) ? this.editorConfig.customization.goback.text : '')
@ -356,7 +357,9 @@ define([
this.permissions = $.extend(this.permissions, data.doc.permissions); this.permissions = $.extend(this.permissions, data.doc.permissions);
var _permissions = $.extend({}, data.doc.permissions), var _permissions = $.extend({}, data.doc.permissions),
_user = new Asc.asc_CUserInfo(); _options = $.extend({}, data.doc.options, {actions: this.editorConfig.actionLink || {}});
var _user = new Asc.asc_CUserInfo();
_user.put_Id(this.appOptions.user.id); _user.put_Id(this.appOptions.user.id);
_user.put_FullName(this.appOptions.user.fullname); _user.put_FullName(this.appOptions.user.fullname);
@ -366,7 +369,7 @@ define([
docInfo.put_Title(data.doc.title); docInfo.put_Title(data.doc.title);
docInfo.put_Format(data.doc.fileType); docInfo.put_Format(data.doc.fileType);
docInfo.put_VKey(data.doc.vkey); docInfo.put_VKey(data.doc.vkey);
docInfo.put_Options(data.doc.options); docInfo.put_Options(_options);
docInfo.put_UserInfo(_user); docInfo.put_UserInfo(_user);
docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); docInfo.put_CallbackUrl(this.editorConfig.callbackUrl);
docInfo.put_Token(data.doc.token); docInfo.put_Token(data.doc.token);

View file

@ -90,7 +90,8 @@ define([
'<tr>', '<tr>',
'<td class="padding-large">', '<td class="padding-large">',
'<button type="button" class="btn btn-text-default" id="bookmarks-btn-goto" style="margin-right: 10px;">', me.textGoto,'</button>', '<button type="button" class="btn btn-text-default" id="bookmarks-btn-goto" style="margin-right: 10px;">', me.textGoto,'</button>',
'<button type="button" class="btn btn-text-default" id="bookmarks-btn-delete" style="">', me.textDelete,'</button>', '<button type="button" class="btn btn-text-default" id="bookmarks-btn-delete" style="margin-right: 10px;">', me.textDelete,'</button>',
'<button type="button" class="btn btn-text-default" id="bookmarks-btn-link" style="">', me.textGetLink,'</button>',
'</td>', '</td>',
'</tr>', '</tr>',
'<tr>', '<tr>',
@ -111,6 +112,7 @@ define([
this.api = options.api; this.api = options.api;
this.handler = options.handler; this.handler = options.handler;
this.props = options.props; this.props = options.props;
this.appOptions = options.appOptions;
Common.Views.AdvancedSettingsWindow.prototype.initialize.call(this, this.options); Common.Views.AdvancedSettingsWindow.prototype.initialize.call(this, this.options);
}, },
@ -137,6 +139,7 @@ define([
me.btnAdd.setDisabled(!check && !exist); me.btnAdd.setDisabled(!check && !exist);
me.btnGoto.setDisabled(!exist); me.btnGoto.setDisabled(!exist);
me.btnDelete.setDisabled(!exist); me.btnDelete.setDisabled(!exist);
me.btnGetLink.setDisabled(!exist);
return (check || _.isEmpty(value)) ? true : me.txtInvalidName; return (check || _.isEmpty(value)) ? true : me.txtInvalidName;
} }
@ -187,6 +190,12 @@ define([
}); });
this.btnDelete.on('click', _.bind(this.deleteBookmark, this)); this.btnDelete.on('click', _.bind(this.deleteBookmark, this));
this.btnGetLink = new Common.UI.Button({
el: $('#bookmarks-btn-link'),
disabled: true
});
this.btnGetLink.on('click', _.bind(this.getBookmarkLink, this));
this.chHidden = new Common.UI.CheckBox({ this.chHidden = new Common.UI.CheckBox({
el: $('#bookmarks-checkbox-hidden'), el: $('#bookmarks-checkbox-hidden'),
labelText: this.textHidden, labelText: this.textHidden,
@ -220,6 +229,7 @@ define([
_setDefaults: function (props) { _setDefaults: function (props) {
this.refreshBookmarks(); this.refreshBookmarks();
this.bookmarksList.scrollToRecord(this.bookmarksList.selectByIndex(0)); this.bookmarksList.scrollToRecord(this.bookmarksList.selectByIndex(0));
this.btnGetLink.setVisible(this.appOptions.canMakeActionLink);
}, },
getSettings: function () { getSettings: function () {
@ -266,6 +276,7 @@ define([
this.btnAdd.setDisabled(false); this.btnAdd.setDisabled(false);
this.btnGoto.setDisabled(false); this.btnGoto.setDisabled(false);
this.btnDelete.setDisabled(false); this.btnDelete.setDisabled(false);
this.btnGetLink.setDisabled(false);
}, },
gotoBookmark: function(btn, eOpts){ gotoBookmark: function(btn, eOpts){
@ -290,6 +301,14 @@ define([
this.btnAdd.setDisabled(true); this.btnAdd.setDisabled(true);
this.btnGoto.setDisabled(true); this.btnGoto.setDisabled(true);
this.btnDelete.setDisabled(true); this.btnDelete.setDisabled(true);
this.btnGetLink.setDisabled(true);
}
},
getBookmarkLink: function() {
var rec = this.bookmarksList.getSelectedRec();
if (rec.length>0) {
Common.Gateway.requestMakeActionLink({action: "bookmark", data: rec[0].get('value')});
} }
}, },
@ -314,7 +333,8 @@ define([
textDelete: 'Delete', textDelete: 'Delete',
textClose: 'Close', textClose: 'Close',
textHidden: 'Hidden bookmarks', textHidden: 'Hidden bookmarks',
txtInvalidName: 'Bookmark name can only contain letters, digits and underscores, and should begin with the letter' txtInvalidName: 'Bookmark name can only contain letters, digits and underscores, and should begin with the letter',
textGetLink: 'Get link'
}, DE.Views.BookmarksDialog || {})) }, DE.Views.BookmarksDialog || {}))
}); });

View file

@ -1009,6 +1009,7 @@
"DE.Views.BookmarksDialog.textName": "Name", "DE.Views.BookmarksDialog.textName": "Name",
"DE.Views.BookmarksDialog.textSort": "Sort by", "DE.Views.BookmarksDialog.textSort": "Sort by",
"DE.Views.BookmarksDialog.textTitle": "Bookmarks", "DE.Views.BookmarksDialog.textTitle": "Bookmarks",
"DE.Views.BookmarksDialog.textGetLink": "Get link",
"DE.Views.BookmarksDialog.txtInvalidName": "Bookmark name can only contain letters, digits and underscores, and should begin with the letter", "DE.Views.BookmarksDialog.txtInvalidName": "Bookmark name can only contain letters, digits and underscores, and should begin with the letter",
"DE.Views.ChartSettings.textAdvanced": "Show advanced settings", "DE.Views.ChartSettings.textAdvanced": "Show advanced settings",
"DE.Views.ChartSettings.textArea": "Area", "DE.Views.ChartSettings.textArea": "Area",

View file

@ -336,7 +336,9 @@ define([
this.permissions = $.extend(this.permissions, data.doc.permissions); this.permissions = $.extend(this.permissions, data.doc.permissions);
var _permissions = $.extend({}, data.doc.permissions), var _permissions = $.extend({}, data.doc.permissions),
_user = new Asc.asc_CUserInfo(); _options = $.extend({}, data.doc.options, {actions: this.editorConfig.actionLink || {}});
var _user = new Asc.asc_CUserInfo();
_user.put_Id(this.appOptions.user.id); _user.put_Id(this.appOptions.user.id);
_user.put_FullName(this.appOptions.user.fullname); _user.put_FullName(this.appOptions.user.fullname);
@ -346,7 +348,7 @@ define([
docInfo.put_Title(data.doc.title); docInfo.put_Title(data.doc.title);
docInfo.put_Format(data.doc.fileType); docInfo.put_Format(data.doc.fileType);
docInfo.put_VKey(data.doc.vkey); docInfo.put_VKey(data.doc.vkey);
docInfo.put_Options(data.doc.options); docInfo.put_Options(_options);
docInfo.put_UserInfo(_user); docInfo.put_UserInfo(_user);
docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); docInfo.put_CallbackUrl(this.editorConfig.callbackUrl);
docInfo.put_Token(data.doc.token); docInfo.put_Token(data.doc.token);

View file

@ -362,7 +362,9 @@ define([
this.permissions = _.extend(this.permissions, data.doc.permissions); this.permissions = _.extend(this.permissions, data.doc.permissions);
var _permissions = $.extend({}, data.doc.permissions), var _permissions = $.extend({}, data.doc.permissions),
_user = new Asc.asc_CUserInfo(); _options = $.extend({}, data.doc.options, {actions: this.editorConfig.actionLink || {}});
var _user = new Asc.asc_CUserInfo();
_user.put_Id(this.appOptions.user.id); _user.put_Id(this.appOptions.user.id);
_user.put_FullName(this.appOptions.user.fullname); _user.put_FullName(this.appOptions.user.fullname);
@ -372,7 +374,7 @@ define([
docInfo.put_Title(data.doc.title); docInfo.put_Title(data.doc.title);
docInfo.put_Format(data.doc.fileType); docInfo.put_Format(data.doc.fileType);
docInfo.put_VKey(data.doc.vkey); docInfo.put_VKey(data.doc.vkey);
docInfo.put_Options(data.doc.options); docInfo.put_Options(_options);
docInfo.put_UserInfo(_user); docInfo.put_UserInfo(_user);
docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); docInfo.put_CallbackUrl(this.editorConfig.callbackUrl);
docInfo.put_Token(data.doc.token); docInfo.put_Token(data.doc.token);