You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
439 lines
20 KiB
439 lines
20 KiB
import { shortcut } from '@core/core'; |
|
import { Vertical, TextEditor, Htape, Left, TextValueCombo, EdirotIconCheckCombo } from 'ui'; |
|
import { FormItemXtype } from '../../components/form_item/form_item'; |
|
import { ConnectionJNDI, Connection, ContextHashtable } from 'src/modules/crud/crud.typings'; |
|
import { CONNECT_CHARSET, CONNECTION_LAYOUT, JNDI_FACTORYS } from '@constants/constant'; |
|
import { CollapseXtype, EVENT_CHANGE } from 'src/modules/components/collapse/collapse'; |
|
import { connectionType } from '@constants/env'; |
|
import { TextCheckerXtype } from '../../../../components/text_checker/text_checker'; |
|
export const FormJndiXtype = 'dec.dcm.maintain.form.jndi'; |
|
@shortcut(FormJndiXtype) |
|
export class FormJndi extends BI.Widget { |
|
props = { |
|
formData: {} as Connection, |
|
} |
|
advancedSet: any; |
|
testStatus: any; |
|
form = { |
|
connectionName: null, |
|
jndiName: null, |
|
initial: null, |
|
providerUrl: null, |
|
securityPrincipal: null, |
|
securityCredentials: null, |
|
newCharsetName: null, |
|
factoryObject: null, |
|
factoryState: null, |
|
factoryUrlPkgs: null, |
|
dnsUrl: null, |
|
authoritative: null, |
|
batchsize: null, |
|
referral: null, |
|
securityProtocol: null, |
|
authentication: null, |
|
language: null, |
|
applet: null, |
|
} |
|
|
|
render() { |
|
const { connectionName, connectionData } = this.options.formData; |
|
const { jndiName, newCharsetName, contextHashtable } = connectionData as ConnectionJNDI; |
|
const { hgap, vgap } = CONNECTION_LAYOUT; |
|
|
|
return { |
|
type: Vertical, |
|
hgap, |
|
vgap, |
|
items: [ |
|
{ |
|
type: FormItemXtype, |
|
name: BI.i18nText('Dec-Dcm_Connection_Name'), |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextCheckerXtype, |
|
$value: 'connection-name', |
|
width: 300, |
|
value: connectionName, |
|
ref: (_ref: any) => { |
|
this.form.connectionName = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: BI.i18nText('Dec-Dcm_Connection_JNDI_Form_ConnectionName'), |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'jdni-name', |
|
width: 300, |
|
allowBlank: true, |
|
value: jndiName, |
|
ref: (_ref: any) => { |
|
this.form.jndiName = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: Htape, |
|
height: 175, |
|
items: [ |
|
{ |
|
el: { |
|
type: Left, |
|
items: [ |
|
{ |
|
type: BI.Label.xtype, |
|
cls: 'bi-font-bold', |
|
textAlign: 'left', |
|
text: BI.i18nText('Dec-Dcm_Connection_JNDI_Form_Connection'), |
|
}, |
|
], |
|
}, |
|
width: 200, |
|
}, |
|
{ |
|
type: Vertical, |
|
bgap: 15, |
|
height: 175, |
|
items: [ |
|
{ |
|
type: FormItemXtype, |
|
name: 'INTIAL_CONTEXT_FACTORY', |
|
nameWidth: 200, |
|
isBold: false, |
|
forms: [{ |
|
type: EdirotIconCheckCombo, |
|
$testId: 'dec-editor-icon-check-combo', |
|
$value: 'initial', |
|
width: 300, |
|
value: contextHashtable['java.naming.factory.initial'], |
|
ref: (_ref: any) => { |
|
this.form.initial = _ref; |
|
}, |
|
items: JNDI_FACTORYS.map(item => { |
|
return { |
|
text: item.factory, |
|
value: item.factory, |
|
}; |
|
}), |
|
listeners: [{ |
|
eventName: BI.EditorIconCheckCombo.EVENT_CHANGE, |
|
action: () => { |
|
const value = this.form.initial.getValue(); |
|
const factory = JNDI_FACTORYS.find(item => item.factory === value); |
|
factory ? this.form.providerUrl.setValue(factory.url) : null; |
|
}, |
|
}], |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'PROVIDER_URL', |
|
isBold: false, |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'provider-url', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.provider.url'], |
|
ref: (_ref: any) => { |
|
this.form.providerUrl = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'SECURITY_PRINCIPAL', |
|
isBold: false, |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'security-principal', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.security.principal'], |
|
ref: (_ref: any) => { |
|
this.form.securityPrincipal = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'SECURITY_CREDENTIALS', |
|
isBold: false, |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'security-credentials', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.security.credentials'], |
|
ref: (_ref: any) => { |
|
this.form.securityCredentials = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: BI.Label.xtype, |
|
bgap: -15, |
|
cls: 'bi-tips', |
|
textAlign: 'left', |
|
text: BI.i18nText('Dec-Dcm_Connection_JNDI_Warning'), |
|
}, |
|
], |
|
}, |
|
], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextValueCombo, |
|
$value: 'new-charset-name', |
|
width: 300, |
|
value: newCharsetName ? newCharsetName : '', |
|
items: CONNECT_CHARSET, |
|
ref: (_ref: any) => { |
|
this.form.newCharsetName = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: CollapseXtype, |
|
width: 70, |
|
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Advanced_Setting'), |
|
listeners: [ |
|
{ |
|
eventName: EVENT_CHANGE, |
|
action: (isCollapse: boolean) => { |
|
this.advancedSet.setVisible(!isCollapse); |
|
}, |
|
}, |
|
], |
|
}, |
|
{ |
|
type: Vertical, |
|
vgap, |
|
tgap: -15, |
|
invisible: true, |
|
ref: (_ref: any) => { |
|
this.advancedSet = _ref; |
|
}, |
|
items: [ |
|
{ |
|
type: FormItemXtype, |
|
name: 'OBJECT_FACTORIES', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'factory-object', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.factory.object'], |
|
ref: (_ref: any) => { |
|
this.form.factoryObject = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'STATE_FACTORIES', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'factory-state', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.factory.state'], |
|
ref: (_ref: any) => { |
|
this.form.factoryState = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'URL_PKG_PREFIXES', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'factory-url-pkgs', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.factory.url.pkgs'], |
|
ref: (_ref: any) => { |
|
this.form.factoryUrlPkgs = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'DNS_URL', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'dns-url', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.dns.url'], |
|
ref: (_ref: any) => { |
|
this.form.dnsUrl = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'AUTHORITATIVE', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'authoritative', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.authoritative'], |
|
ref: (_ref: any) => { |
|
this.form.authoritative = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'BATCHSIZE', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'batchsize', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.batchsize'], |
|
ref: (_ref: any) => { |
|
this.form.batchsize = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'REFERRAL', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'referral', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.referral'], |
|
ref: (_ref: any) => { |
|
this.form.referral = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'SECURITY_PROTOCOL', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'security-protocol', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.security.protocol'], |
|
ref: (_ref: any) => { |
|
this.form.securityProtocol = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'SECURITY_AUTHENTICATION', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'security-authentication', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.security.authentication'], |
|
ref: (_ref: any) => { |
|
this.form.authentication = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'LANGUAGE', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'language', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.language'], |
|
ref: (_ref: any) => { |
|
this.form.language = _ref; |
|
}, |
|
}], |
|
}, |
|
{ |
|
type: FormItemXtype, |
|
name: 'APPLET', |
|
nameWidth: 200, |
|
forms: [{ |
|
type: TextEditor, |
|
$value: 'applet', |
|
width: 300, |
|
allowBlank: true, |
|
value: contextHashtable['java.naming.applet'], |
|
ref: (_ref: any) => { |
|
this.form.applet = _ref; |
|
}, |
|
}], |
|
}, |
|
], |
|
}, |
|
], |
|
}; |
|
} |
|
|
|
public setError(value: string) { |
|
this.form.connectionName.setError(value); |
|
} |
|
|
|
public getSubmitValue():Connection { |
|
const contextHashtable = { |
|
'java.naming.factory.initial': this.form.initial.getValue(), |
|
'java.naming.provider.url': this.form.providerUrl.getValue(), |
|
'java.naming.factory.object': this.form.factoryObject.getValue(), |
|
'java.naming.factory.state': this.form.factoryState.getValue(), |
|
'java.naming.factory.url.pkgs': this.form.factoryUrlPkgs.getValue(), |
|
'java.naming.dns.url': this.form.dnsUrl.getValue(), |
|
'java.naming.authoritative': this.form.authoritative.getValue(), |
|
'java.naming.batchsize': this.form.batchsize.getValue(), |
|
'java.naming.referral': this.form.referral.getValue(), |
|
'java.naming.security.protocol': this.form.securityProtocol.getValue(), |
|
'java.naming.security.authentication': this.form.authentication.getValue(), |
|
'java.naming.security.principal': this.form.securityPrincipal.getValue(), |
|
'java.naming.security.credentials': this.form.securityCredentials.getValue(), |
|
'java.naming.language': this.form.language.getValue(), |
|
'java.naming.applet': this.form.applet.getValue(), |
|
}; |
|
|
|
for (const propName in contextHashtable) { |
|
if (contextHashtable[propName] === null || contextHashtable[propName] === undefined || contextHashtable[propName] === '') { |
|
delete contextHashtable[propName]; |
|
} |
|
} |
|
|
|
return { |
|
connectionId: this.form.connectionName.getValue(), |
|
connectionName: this.form.connectionName.getValue(), |
|
connectionType: connectionType.JNDI, |
|
connectionData: { |
|
jndiName: this.form.jndiName.getValue(), |
|
newCharsetName: this.form.newCharsetName.getValue()[0] || '', |
|
originalCharsetName: this.form.newCharsetName.getValue()[0] || '', |
|
creator: Dec ? Dec.personal.username : '', |
|
contextHashtable: contextHashtable as ContextHashtable, |
|
}, |
|
}; |
|
} |
|
}
|
|
|