BI.config("dec.constant.intelligence.cluster.file.server", function (items) { items.push({ value: "S3", // 地址栏显示的hash值 id: "decision-intelligence-cluster-file-s3", // id text: "S3", // 文字 cardType: "dec.intelligence.cluster.file.s3", workRoot: false, }); return items; }); !(function () { var LABEL_WIDTH = 107, EDITOR_WIDTH = 393; var S3 = BI.inherit(BI.Widget, { props: { baseCls: "dec-cluster-ftp", value: {}, }, _store: function () { return BI.Models.getModel("dec.model.intelligence.cluster.file.s3", { value: this.options.value, }); }, render: function () { var self = this, o = this.options; return { type: "bi.vertical", tgap: 15, items: [ { type: "dec.label.editor.item", textWidth: LABEL_WIDTH, editorWidth: EDITOR_WIDTH, watermark: BI.i18nText("Plugin-S3_Input"), text: BI.i18nText("Plugin-S3_End_Point"), value: this.model.endPoint, el: { disabled: !o.editable, }, ref: function (_ref) { self.endPointRow = _ref; }, listeners: [{ eventName: BI.Editor.EVENT_CHANGE, action: function () { self.store.setEndPoint(this.getValue()); }, }], }, { type: "dec.label.editor.item", textWidth: LABEL_WIDTH, editorWidth: EDITOR_WIDTH, watermark: BI.i18nText("Plugin-S3_Input"), text: BI.i18nText("Plugin-S3_Region"), value: this.model.region, el: { disabled: !o.editable, }, ref: function (_ref) { self.regionRow = _ref; }, listeners: [{ eventName: BI.Editor.EVENT_CHANGE, action: function () { self.store.setRegion(this.getValue()); }, }], }, { type: "dec.label.editor.item", textWidth: LABEL_WIDTH, editorWidth: EDITOR_WIDTH, watermark: BI.i18nText("Plugin-S3_Input"), text: BI.i18nText("Plugin-S3_Access_Key_Id"), value: this.model.accessKeyId, el: { disabled: !o.editable, }, ref: function (_ref) { self.portRow = _ref; }, listeners: [{ eventName: BI.Editor.EVENT_CHANGE, action: function () { self.store.setAccessKeyId(this.getValue()); }, }], }, { type: "dec.common.cipher.editor", textWidth: LABEL_WIDTH, editorWidth: EDITOR_WIDTH, watermark: BI.i18nText("Plugin-S3_Access_Key_Secret"), text: BI.i18nText("Plugin-S3_Access_Key_Secret"), value: this.model.password, el: { disabled: !o.editable, }, ref: function (_ref) { self.passwordRow = _ref; }, }, { type: "dec.label.editor.item", textWidth: LABEL_WIDTH, editorWidth: EDITOR_WIDTH, watermark: BI.i18nText("Plugin-S3_Bucket"), text: BI.i18nText("Plugin-S3_Bucket"), value: this.model.bucket, el: { disabled: !o.editable, }, listeners: [{ eventName: BI.Editor.EVENT_CHANGE, action: function () { self.store.setBucket(this.getValue()); }, }], }, { type: "dec.label.editor.item", el: { disabled: !o.editable, }, textWidth: LABEL_WIDTH, editorWidth: EDITOR_WIDTH, watermark: BI.i18nText("Dec-Please_Input"), text: BI.i18nText("Dec-Basic_Path"), value: this.model.workRoot, ref: function (_ref) { self.filePathRow = _ref; }, }, { type: "bi.vertical_adapt", items: [{ type: "bi.icon_change_button", iconCls: this.model.isOpen ? "expander-down-font" : "expander-right-font", ref: (_ref) => { this.OtherConfigButton = _ref; }, handler: () => { this.store.setIsOpen(!this.model.isOpen); this.OtherConfigButton.setIcon(this.model.isOpen ? "expander-down-font" : "expander-right-font"); } }, { type: "bi.text_button", text: BI.i18nText('Plugin-S3_Other_Config'), handler: () => { this.store.setIsOpen(!this.model.isOpen); this.OtherConfigButton.setIcon(this.model.isOpen ? "expander-down-font" : "expander-right-font"); } }] }, { type: 'bi.vertical', invisible: () => !this.model.isOpen, items: [{ type: "dec.label.editor.item", textWidth: LABEL_WIDTH, editorWidth: EDITOR_WIDTH, watermark: BI.i18nText("Plugin-S3_Input"), text: "PathStyleAccess", value: String(this.model.enablePathStyleAccess), ref: function (_ref) { self.enablePathStyleAccessRow = _ref; }, el: { disabled: !o.editable, }, listeners: [{ eventName: BI.Editor.EVENT_CHANGE, action: function () { self.store.setEnablePathStyleAccess(this.getValue()); } }] }, { type: "dec.label.editor.item", textWidth: LABEL_WIDTH, editorWidth: EDITOR_WIDTH, watermark: BI.i18nText("Plugin-S3_Input"), text: "SignerOverride", value: this.model.signerOverride, el: { disabled: !o.editable, }, tgap: 15, listeners: [{ eventName: BI.Editor.EVENT_CHANGE, action: function () { self.store.setSignerOverride(this.getValue()); } }] }], } ] }; }, getValue: function () { var enablePathStyleAccess = false; if (this.model.enablePathStyleAccess === 'true') { enablePathStyleAccess = true; } return { endPoint: this.model.endPoint, region: this.model.region, accessKeyId: this.model.accessKeyId, password: this.passwordRow.getCompleteCipher(), bucket: this.model.bucket, workRoot: this.filePathRow.getValue(), enablePathStyleAccess, signerOverride: this.model.signerOverride, }; }, validation: function () { var valid = true; var path = this.filePathRow.getValue(); if (Dec.Utils.strLength(path) > DecCst.STRING_SHORT_TEXT_LENGTH) { this.filePathRow.showError(BI.i18nText("Dec-Error_Length_Greater_Than_Short_Text")); valid = false; } if (BI.startWith(path, "/") || !BI.endWith(path, "/")) { this.filePathRow.showError(BI.i18nText("Dec-Error_Start_With_Slash_Or_End_Without_Slash")); valid = false; } if (!BI.isKey(path)) { this.filePathRow.showError(BI.i18nText("Dec-Error_Null")); valid = false; } if (!(this.model.enablePathStyleAccess === 'false' || this.model.enablePathStyleAccess === 'true')) { this.enablePathStyleAccessRow.showError(BI.i18nText("Plugin-S3_EnablePathStyleAccess_Error_Tip")); valid = false; } return valid; }, }); BI.shortcut("dec.intelligence.cluster.file.s3", S3); }()); !(function () { var Model = BI.inherit(Fix.Model, { state: function () { var val = this.options.value; return { endPoint: val.endPoint, region: val.region, accessKeyId: val.accessKeyId, password: val.password, bucket: val.bucket, workRoot: val.workRoot, isOpen: false, enablePathStyleAccess: val.enablePathStyleAccess ? String(val.enablePathStyleAccess) : '', signerOverride: val.signerOverride, }; }, computed: { encodingArray: function () { return BI.map(DecCst.EncodeConstants.ENCODING_ARRAY, function (i, v) { return { value: v, }; }); }, }, actions: { setEndPoint: function (v) { this.model.endPoint = v; }, setRegion: function (v) { this.model.region = v; }, setAccessKeyId: function (v) { this.model.accessKeyId = v; }, setBucket: function (v) { this.model.bucket = v; }, setEnablePathStyleAccess: function (v) { this.model.enablePathStyleAccess = v; }, setSignerOverride: function (v) { this.model.signerOverride = v; }, setIsOpen: function (v) { this.model.isOpen = v; }, }, }); BI.model("dec.model.intelligence.cluster.file.s3", Model); }());