Attachment
Overview
Number | Description |
---|---|
1 | "X" button to remove the related file |
2 | File name
|
3 | File size
|
4 | Link to show "file select" pop-up box |
5 | Text to show file limit message |
6 | Error message |
7 | Drag drop zone |
Constructor
Parameter
Name | Type | Required | Description |
---|---|---|---|
options | Object | No | An object contains parameter of the constructor. |
options.dropZoneText | String | No | Text will show when the file is dragged over the attachment field. (item 7) Default value: 'Drop files here.' |
options.browseButtonText | String | No | Text of the browse button. (item 4) Default value: 'Browse' |
options.fileLimitText | String | No | Text of the file limit warn part. (item 5) |
options.errorMessage | String | No | Error message (item 6) |
options.isErrorVisible | Boolean | No | Only when it is true, "errorMessage" will show. Default value: false |
options.files | Array<Object> | No | File objects (ref. https://developer.mozilla.org/en-US/docs/Web/API/File) Or objects contain "name" and "size" |
options.files[].name | String | No | The file name |
options.files[].size | Integer | No | The file size |
options.isVisible | Boolean | No | The attachment component will be visible. Default value: true |
Sample
Javascript
const attachment = new kintoneUIComponent.Attachment({files: [{name: 'test_1', size: 12345}]});
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = {files: []};
};
handleFilesAdd = (files) => {
this.setState({files});
};
handleFileRemove = (files) => {
this.setState({files});
};
render() {
return (<Attachment files={this.state.files} onFilesAdd={this.handleFilesAdd} onFileRemove={this.handleFileRemove} />);
}
}
Methods
render()
Get dom element of component.
Parameter
None
Returns
Dom element
Sample
Javascript
const attachment = new kintoneUIComponent.Attachment({files: [{name: 'test_1', size: 12345}]});
const body = document.getElementsByTagName('BODY')[0];
body.appendChild(attachment.render());
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = {files: []};
};
handleFilesAdd = (files) => {
this.setState({files});
};
handleFileRemove = (files) => {
this.setState({files});
};
render() {
return (<Attachment files={this.state.files} onFilesAdd={this.handleFilesAdd} onFileRemove={this.handleFileRemove} />);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
setFiles(files)
Set the files of attachment field.
Parameter
Name | Type | Required | Description |
---|---|---|---|
files | Array<Object> | Yes | File objects (ref. https://developer.mozilla.org/en-US/docs/Web/API/File) Or objects contain "name" and "size" |
files[].name | String | No | The file name |
files[].size | Integer | No | The file size |
Returns
None
Sample
Javascript
const body = document.getElementsByTagName("BODY")[0];
const attachment = new kintoneUIComponent.Attachment();
body.appendChild(attachment.render());
const button = new kintoneUIComponent.Button({text: 'Set Files'});
body.appendChild(button.render());
button.on('click', () => {
attachment.setFiles([{name: 'test_1', size: 12345}]);
});
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = {files: []};
};
handleFilesAdd = (files) => {
this.setState({files});
};
handleFileRemove = (files) => {
this.setState({files});
};
handleClick = () => {
this.setState({files: [{name: 'test_1', size: 12345}]});
};
render() {
return (
<div>
<Attachment files={this.state.files} onFilesAdd={this.handleFilesAdd} onFileRemove={this.handleFileRemove} />
<button onClick={this.handleClick}>Set Files</button>
</div>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
getFiles()
Get all files information on attachment field.
Parameter
None
Returns
Name | Type | Description |
---|---|---|
files | Array<Object> | List of all file objects in the attachment field |
Sample
Javascript
const body = document.getElementsByTagName("BODY")[0];
const attachment = new kintoneUIComponent.Attachment({files: [{name: 'test_1', size: 12345}]});
body.appendChild(attachment.render());
const button = new kintoneUIComponent.Button({text: 'Get Files'});
body.appendChild(button.render());
button.on('click', () => {
console.log('files:', attachment.getFiles());
});
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = {files: []};
};
handleFilesAdd = (files) => {
this.setState({files});
};
handleFileRemove = (files) => {
this.setState({files});
};
handleClick = () => {
console.log('files:', this.state.files);
};
render() {
return (
<div>
<Attachment files={this.state.files} onFilesAdd={this.handleFilesAdd} onFileRemove={this.handleFileRemove} />
<button onClick={this.handleClick}>Get Files</button>
</div>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
setDropZoneText(dropZoneText)
Set the text of the drop zone
Parameter
Name | Type | Required | Description |
---|---|---|---|
dropZoneText | String | Yes | Text will show when the file is dragged over the attachment field. |
Returns
None
Sample
Javascript
const body = document.getElementsByTagName("BODY")[0];
const attachment = new kintoneUIComponent.Attachment();
body.appendChild(attachment.render());
attachment.setDropZoneText('Drop files here.');
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = { files: [],dropZoneText:"Drop files here." };
}
handleFilesAdd = files => {
this.setState({ files });
};
handleFileRemove = files => {
this.setState({ files });
};
setDropZoneText = dropZoneText => {
this.setState({ dropZoneText });
};
render() {
return (
<div>
<button onClick={()=>this.setDropZoneText("new drop file")}>setDropZoneText</button>
<Attachment
files={this.state.files}
dropZoneText={this.state.dropZoneText}
onFilesAdd={this.handleFilesAdd}
onFileRemove={this.handleFileRemove}
/>
</div>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
setBrowseButtonText(browseButtonText)
Set the text of the browse button
Parameter
Name | Type | Required | Description |
---|---|---|---|
browseButtonText | String | Yes | Text of the browse button |
Returns
None
Sample
Javascript
const body = document.getElementsByTagName("BODY")[0];
const attachment = new kintoneUIComponent.Attachment();
body.appendChild(attachment.render());
attachment.setBrowseButtonText('Browse');
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = { files: [], browseButtonText: "Browse" };
}
handleFilesAdd = files => {
this.setState({ files });
};
handleFileRemove = files => {
this.setState({ files });
};
browseButtonText = browseButtonText => {
this.setState({ browseButtonText });
};
render() {
return (
<div>
<Attachment
files={this.state.files}
browseButtonText={this.state.browseButtonText}
onFilesAdd={this.handleFilesAdd}
onFileRemove={this.handleFileRemove}
/>
<button onClick={()=>this.browseButtonText("new browse")}>Set Browse Button Text</button>
</div>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
setFileLimitText(fileLimitText)
Set the text of the file limit warn part.
Parameter
Name | Type | Required | Description |
---|---|---|---|
fileLimitText | String | Yes | Text of the file limit warn part |
Returns
None
Sample
Javascript
const body = document.getElementsByTagName("BODY")[0];
const attachment = new kintoneUIComponent.Attachment();
body.appendChild(attachment.render());
attachment.setFileLimitText('Maximum: 1 GB');
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = { files: [], fileLimitText: "Maximum: 1 GB" };
}
handleFilesAdd = files => {
this.setState({ files });
};
handleFileRemove = files => {
this.setState({ files });
};
setFileLimitText = fileLimitText => {
this.setState({ fileLimitText });
};
render() {
return (
<div>
<Attachment
files={this.state.files}
fileLimitText={this.state.fileLimitText}
onFilesAdd={this.handleFilesAdd}
onFileRemove={this.handleFileRemove}
/>
<button onClick={()=>this.setFileLimitText("new file limit text")}>Set File Limit Text</button>
</div>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
setErrorMessage(errorMessage)
Set the error message.
Parameter
Name | Type | Required | Description |
---|---|---|---|
errorMessage | String | Yes | Error message |
Returns
None
Sample
Javascript
const body = document.getElementsByTagName("BODY")[0];
const attachment = new kintoneUIComponent.Attachment();
body.appendChild(attachment.render());
attachment.setErrorMessage('Error message');
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = { files: [], errorMessage: "error message" };
}
handleFilesAdd = files => {
this.setState({ files });
};
handleFileRemove = files => {
this.setState({ files });
};
setErrorMessage = errorMessage => {
this.setState({ errorMessage });
};
render() {
return (
<div>
<Attachment
files={this.state.files}
errorMessage={this.state.errorMessage}
onFilesAdd={this.handleFilesAdd}
onFileRemove={this.handleFileRemove}
/>
<button onClick={()=>this.setErrorMessage("new error message")}>Set Error Message</button>
</div>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
showError()
Show the error message
Parameter
None
Returns
None
Sample
Javascript
const body = document.getElementsByTagName("BODY")[0];
const attachment = new kintoneUIComponent.Attachment({errorMessage: 'Error message'});
body.appendChild(attachment.render());
const showButton = new kintoneUIComponent.Button({text: 'Show Error'});
body.appendChild(showButton.render());
showButton.on('click', () => {
attachment.showError();
});
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = { files: [], errorMessage: "error message",isErrorVisible:false };
}
handleFilesAdd = files => {
this.setState({ files });
};
handleFileRemove = files => {
this.setState({ files });
};
showError = () => {
this.setState({ isErrorVisible: true });
};
render() {
return (
<div>
<Attachment
files={this.state.files}
errorMessage={this.state.errorMessage}
isErrorVisible={this.state.isErrorVisible}
onFilesAdd={this.handleFilesAdd}
onFileRemove={this.handleFileRemove}
/>
<button onClick={()=>this.showError()}>Show error</button>
</div>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
hideError()
Hide the error message
Parameter
None
Returns
None
Sample
Javascript
const body = document.getElementsByTagName("BODY")[0];
const attachment = new kintoneUIComponent.Attachment({errorMessage: 'Error message'});
body.appendChild(attachment.render());
const showButton = new kintoneUIComponent.Button({text: 'Show Error'});
body.appendChild(showButton.render());
showButton.on('click', () => {
attachment.showError();
});
const hideButton = new kintoneUIComponent.Button({text: 'Hide Error'});
body.appendChild(hideButton.render());
hideButton.on('click', () => {
attachment.hideError();
});
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = { files: [], errorMessage: "error message",isErrorVisible:true };
}
handleFilesAdd = files => {
this.setState({ files });
};
handleFileRemove = files => {
this.setState({ files });
};
hideError = () => {
this.setState({ isErrorVisible: false });
};
render() {
return (
<div>
<Attachment
files={this.state.files}
errorMessage={this.state.errorMessage}
isErrorVisible={this.state.isErrorVisible}
onFilesAdd={this.handleFilesAdd}
onFileRemove={this.handleFileRemove}
/>
<button onClick={()=>this.hideError()}>Hide error</button>
</div>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
on(eventName, callBack)
Register callback for an event
Parameter
Name | Type | Required | Description |
---|---|---|---|
eventName | String | Yes | Name of event:
|
callback | Function | Yes | callback |
Returns
Callback data
Event | Name | Type | Description |
---|---|---|---|
filesAdd | files | Array<Object> | List of all file objects that are displayed in the attachment field after files are added. |
fileRemove | files | Array<Object> | List of all file objects that are displayed in the attachment field after a file is removed. |
Sample
Javascript
const body = document.getElementsByTagName("BODY")[0];
const attachment = new kintoneUIComponent.Attachment();
body.appendChild(attachment.render());
attachment.on('filesAdd', (files) => {
console.log('files:', files);
});
attachment.on('fileRemove', (files) => {
console.log('files:', files);
});
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = {files: []};
};
handleFilesAdd = (files) => {
this.setState({files});
console.log('files:', files);
};
handleFileRemove = (files) => {
this.setState({files});
console.log('files:', files);
};
render() {
return (
<Attachment
files={this.state.files}
onFilesAdd={this.handleFilesAdd}
onFileRemove={this.handleFileRemove}
/>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
show()
Display the attachment component.
Parameter
None
Returns
None
Sample
Javascript
const attachment = new kintoneUIComponent.Attachment({files: [{name: 'test_1', size: 12345}]});
const body = document.getElementsByTagName('BODY')[0];
body.appendChild(attachment.render());
attachment.show();
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = { files: [], errorMessage: "error message",isVisible:false };
}
handleFilesAdd = files => {
this.setState({ files });
};
handleFileRemove = files => {
this.setState({ files });
};
show = () => {
this.setState({ isVisible: true });
};
render() {
return (
<div>
<Attachment
files={this.state.files}
isVisible={this.state.isVisible}
onFilesAdd={this.handleFilesAdd}
onFileRemove={this.handleFileRemove}
/>
<button onClick={()=>this.show()}>Show</button>
</div>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));
hide()
Hide the the attachment component..
Parameter
None
Returns
None
Sample
Javascript
const attachment = new kintoneUIComponent.Attachment({files: [{name: 'test_1', size: 12345}]});
const body = document.getElementsByTagName('BODY')[0];
body.appendChild(attachment.render());
attachment.hide();
React
import {Attachment} from '@kintone/kintone-ui-component';
import React from 'react';
import Reactdom from "react-dom";
export default class Plugin extends React.Component {
constructor(props) {
super(props);
this.state = { files: [], errorMessage: "error message",isVisible:true };
}
handleFilesAdd = files => {
this.setState({ files });
};
handleFileRemove = files => {
this.setState({ files });
};
hide = () => {
this.setState({ isVisible: false });
};
render() {
return (
<div>
<Attachment
files={this.state.files}
isVisible={this.state.isVisible}
onFilesAdd={this.handleFilesAdd}
onFileRemove={this.handleFileRemove}
/>
<button onClick={()=>this.hide()}>Hide</button>
</div>
);
}
}
Reactdom.render(<Plugin />, document.getElementById("root"));