ucan-ext-js-kitchen-sink
Version:
my-ext-gen-app description for Ext JS app MyExtGenApp
167 lines (160 loc) • 4.89 kB
JavaScript
Ext.define('UCAN.aboutDialog.src.aboutDialog', {
extend: 'Ext.Dialog',
xtype: 'ucanAboutDialog',
reference: 'aboutDialog',
cls: 'ucan-about-dialog',
viewModel: {},
closable: true,
hideOnMaskTap: true,
focusable: true,
maximizable: true,
scrollable: true,
header: false,
defaultListenerScope: this,
referenceHolder: true,
layout: 'hbox',
config: {
url: null,
icon: null,
tool: 'Unknown',
whatIsNew: null,
poweredBy: null,
translator: {
version: 'Version',
max_memory: 'Maximum memory',
used_memory: 'Used memory',
variant: 'Variant',
os: 'Operating system',
what_is_new: 'What is new?',
powered_by: 'Powered by Institute for Communication and Assessment Research',
new_tab_open: 'Open in new tab',
dialog_close: 'Close',
unknown: 'Unknown'
}
},
publishes: {
url: null,
icon: true,
tool: true,
whatIsNew: true,
poweredBy: true,
translator: true
},
items: [
{
bind: '<img src="{aboutDialog.icon}" style="width:64px; height:auto; transform:translateY(25%);">',
},
{
xtype: 'spacer',
width: '16px'
},
{
layout: 'vbox',
items: [
{
bind: '<h1>{aboutDialog.tool}</h1>',
cls: 'ucan-about-dialog-container-header'
},
{
reference: 'version',
bind: '{aboutDialog.translator.version}: {aboutDialog.translator.unknown}',
cls: 'ucan-about-dialog-container-info'
},
{
reference: 'what-is-new',
bind: {
html: '<a title="{aboutDialog.translator.new_tab_open}" href="{aboutDialog.whatIsNew}" target="_blank">{aboutDialog.translator.what_is_new}</a>'
},
cls: 'ucan-about-dialog-container-info'
},
{
xtype: 'spacer',
height: '14px',
width: '0px'
},
{
reference: 'used-memory',
bind: '{aboutDialog.translator.used_memory}: {aboutDialog.translator.unknown}',
cls: 'ucan-about-dialog-container-info'
},
{
reference: 'max-memory',
bind: '{aboutDialog.translator.max_memory}: {aboutDialog.translator.unknown}',
cls: 'ucan-about-dialog-container-info'
},
{
xtype: 'spacer',
height: '14px',
width: '0px'
},
{
reference: 'java-variant',
bind: 'Java {aboutDialog.translator.variant}: {aboutDialog.translator.unknown}',
cls: 'ucan-about-dialog-container-info'
},
{
reference: 'java-version',
bind: 'Java {aboutDialog.translator.version}: {aboutDialog.translator.unknown}',
cls: 'ucan-about-dialog-container-info'
},
{
xtype: 'spacer',
height: '14px',
width: '0px'
},
{
reference: 'os',
bind: '{aboutDialog.translator.os}: {aboutDialog.translator.unknown}',
cls: 'ucan-about-dialog-container-info'
},
{
xtype: 'spacer',
height: '14px',
width: '0px'
},
{
reference: 'powered-by',
bind: {
html: '<a title="{aboutDialog.translator.new_tab_open}" href="{aboutDialog.poweredBy}" target="_blank">{aboutDialog.translator.powered_by}</a>'
},
cls: 'ucan-about-dialog-container-info'
}
]
}
],
buttons: {
close: {
bind: '{aboutDialog.translator.dialog_close}',
handler: function(button) {
button.up().up().destroy();
}
}
},
maskTapHandler: function(dialog) {
dialog.destroy();
},
listeners: {
initialize: function(me) {
if (!Ext.isEmpty(this.getUrl())) {
me.setMasked(true);
Ext.Ajax.request({
url: this.getUrl(),
success: function(response) {
const about = JSON.parse(response.responseText);
this.lookupReference('version').setHtml(this.getTranslator().version + ': ' + about.version);
this.lookupReference('max-memory').setHtml(this.getTranslator().max_memory + ': ' + about.heap_max);
this.lookupReference('used-memory').setHtml(this.getTranslator().used_memory + ': ' + about.heap_size);
this.lookupReference('java-variant').setHtml("Java " + this.getTranslator().variant + ': ' + about.java_vendor);
this.lookupReference('java-version').setHtml("Java " + this.getTranslator().version + ': ' + about.java_version);
this.lookupReference('os').setHtml(this.getTranslator().os + ': ' + about.os_name + ' ' + about.os_version);
me.setMasked(false);
},
failure: function() {
me.setMasked(false);
},
scope: this,
});
}
}
}
});