jqwidgets-scripts-custom
Version:
jQWidgets is an advanced jQuery, Angular 7, Vue, React, ASP .NET MVC, Custom Elements and HTML5 UI framework.
177 lines (168 loc) • 6.5 kB
JavaScript
import React from 'react';
import ReactDOM from 'react-dom';
import JqxScheduler from '../../../jqwidgets-react/react_jqxscheduler.js';
import JqxButton from '../../../jqwidgets-react/react_jqxbuttons.js';
class App extends React.Component {
componentDidMount() {
this.refs.myScheduler.ensureAppointmentVisible('id1');
this.refs.excelExport.on('click', () => {
this.refs.myScheduler.exportData('xls');
});
this.refs.xmlExport.on('click', () => {
this.refs.myScheduler.exportData('xml');
});
this.refs.csvExport.on('click', () => {
this.refs.myScheduler.exportData('csv');
});
this.refs.tsvExport.on('click', () => {
this.refs.myScheduler.exportData('tsv');
});
this.refs.htmlExport.on('click', () => {
this.refs.myScheduler.exportData('html');
});
this.refs.jsonExport.on('click', () => {
this.refs.myScheduler.exportData('json');
});
this.refs.pdfExport.on('click', () => {
this.refs.myScheduler.exportData('pdf');
});
this.refs.icalExport.on('click', () => {
this.refs.myScheduler.exportData('ics');
});
}
render() {
let appointments = new Array();
let appointment1 = {
id: 'id1',
description: 'George brings projector for presentations.',
location: '',
subject: 'Quarterly Project Review Meeting',
calendar: 'Room 1',
start: new Date(2016, 10, 23, 9, 0, 0),
end: new Date(2016, 10, 23, 16, 0, 0)
}
let appointment2 = {
id: 'id2',
description: '',
location: '',
subject: 'IT Group Mtg.',
calendar: 'Room 2',
start: new Date(2016, 10, 24, 10, 0, 0),
end: new Date(2016, 10, 24, 15, 0, 0)
}
let appointment3 = {
id: 'id3',
description: '',
location: '',
subject: 'Course Social Media',
calendar: 'Room 3',
start: new Date(2016, 10, 27, 11, 0, 0),
end: new Date(2016, 10, 27, 13, 0, 0)
}
let appointment4 = {
id: 'id4',
description: '',
location: '',
subject: 'New Projects Planning',
calendar: 'Room 2',
start: new Date(2016, 10, 23, 16, 0, 0),
end: new Date(2016, 10, 23, 18, 0, 0)
}
let appointment5 = {
id: 'id5',
description: '',
location: '',
subject: 'Interview with James',
calendar: 'Room 1',
start: new Date(2016, 10, 25, 15, 0, 0),
end: new Date(2016, 10, 25, 17, 0, 0)
}
let appointment6 = {
id: 'id6',
description: '',
location: '',
subject: 'Interview with Nancy',
calendar: 'Room 4',
start: new Date(2016, 10, 26, 14, 0, 0),
end: new Date(2016, 10, 26, 16, 0, 0)
}
appointments.push(appointment1);
appointments.push(appointment2);
appointments.push(appointment3);
appointments.push(appointment4);
appointments.push(appointment5);
appointments.push(appointment6);
// prepare the data
let source =
{
dataType: 'array',
dataFields: [
{ name: 'id', type: 'string' },
{ name: 'description', type: 'string' },
{ name: 'location', type: 'string' },
{ name: 'subject', type: 'string' },
{ name: 'calendar', type: 'string' },
{ name: 'start', type: 'date' },
{ name: 'end', type: 'date' }
],
id: 'id',
localData: appointments
};
let adapter = new $.jqx.dataAdapter(source);
let resources =
{
colorScheme: 'scheme05',
dataField: 'calendar',
source: new $.jqx.dataAdapter(source)
};
let appointmentDataFields =
{
from: 'start',
to: 'end',
id: 'id',
description: 'description',
location: 'place',
subject: 'subject',
resourceId: 'calendar'
};
let views =
[
'dayView',
'weekView',
'monthView'
];
return (
<div>
<JqxScheduler ref='myScheduler'
width={850} height={600} source={adapter}
date={new $.jqx.date(2016, 11, 23)} showLegend={true}
view={'weekView'} resources={resources} views={views}
appointmentDataFields={appointmentDataFields}
/>
<div style={{ marginTop: 20 }}>
<div style={{ float: 'left' }}>
<JqxButton ref='excelExport' value='Export to Excel' />
<br />
<JqxButton ref='xmlExport' value='Export to XML' />
</div>
<div style={{ float: 'left', marginLeft: 10 }}>
<JqxButton ref='csvExport' value='Export to CSV' />
<br />
<JqxButton ref='tsvExport' value='Export to TSV' />
</div>
<div style={{ float: 'left', marginLeft: 10 }}>
<JqxButton ref='htmlExport' value='Export to HTML' />
<br />
<JqxButton ref='jsonExport' value='Export to JSON' />
</div>
<div style={{ float: 'left', marginLeft: 10 }}>
<JqxButton ref='pdfExport' value='Export to PDF' />
<br />
<JqxButton ref='icalExport' value='Export to ICAL' />
</div>
</div>
</div>
)
}
}
ReactDOM.render(<App />, document.getElementById('app'));