proxmox-widget-toolkit/button/HelpButton.js
Thomas Lamprecht 05a977a227 make eslint 100% happy
lots of churn and changes but will allow to enforce linting again in
the build system.

Also switch over from var to let.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-06-06 17:16:22 +02:00

87 lines
1.9 KiB
JavaScript

/* help button pointing to an online documentation
for components contained in a modal window
*/
Ext.define('Proxmox.button.Help', {
extend: 'Ext.button.Button',
xtype: 'proxmoxHelpButton',
text: gettext('Help'),
// make help button less flashy by styling it like toolbar buttons
iconCls: ' x-btn-icon-el-default-toolbar-small fa fa-question-circle',
cls: 'x-btn-default-toolbar-small proxmox-inline-button',
hidden: true,
listenToGlobalEvent: true,
controller: {
xclass: 'Ext.app.ViewController',
listen: {
global: {
proxmoxShowHelp: 'onProxmoxShowHelp',
proxmoxHideHelp: 'onProxmoxHideHelp',
},
},
onProxmoxShowHelp: function(helpLink) {
let view = this.getView();
if (view.listenToGlobalEvent === true) {
view.setOnlineHelp(helpLink);
view.show();
}
},
onProxmoxHideHelp: function() {
let view = this.getView();
if (view.listenToGlobalEvent === true) {
view.hide();
}
},
},
// this sets the link and the tooltip text
setOnlineHelp: function(blockid) {
let me = this;
let info = Proxmox.Utils.get_help_info(blockid);
if (info) {
me.onlineHelp = blockid;
let title = info.title;
if (info.subtitle) {
title += ' - ' + info.subtitle;
}
me.setTooltip(title);
}
},
// helper to set the onlineHelp via a config object
setHelpConfig: function(config) {
let me = this;
me.setOnlineHelp(config.onlineHelp);
},
handler: function() {
let me = this;
let docsURI;
if (me.onlineHelp) {
docsURI = Proxmox.Utils.get_help_link(me.onlineHelp);
}
if (docsURI) {
window.open(docsURI);
} else {
Ext.Msg.alert(gettext('Help'), gettext('No Help available'));
}
},
initComponent: function() {
let me = this;
me.callParent();
if (me.onlineHelp) {
me.setOnlineHelp(me.onlineHelp); // set tooltip
}
},
});