jqwidgets-framework
Version:
jQWidgets is an advanced Angular, Vue, Blazor, React, Web Components, jquery, ASP .NET MVC, Custom Elements and HTML5 UI framework.
284 lines (264 loc) • 13.4 kB
HTML
<html lang="en">
<head>
<title id='Description'>jqxScheduler Edit Dialog example
</title>
<link rel="stylesheet" href="../../../jqwidgets/styles/jqx.base.css" type="text/css" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" />
<script type="text/javascript" src="../../../scripts/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxscrollbar.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxdata.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxdate.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxscheduler.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxscheduler.api.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxdatetimeinput.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxmenu.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcalendar.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxtooltip.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxwindow.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcheckbox.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxlistbox.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxdropdownlist.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxnumberinput.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxradiobutton.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxinput.js"></script>
<script type="text/javascript" src="../../../scripts/demos.js"></script>
<script type="text/javascript" src="../../../jqwidgets/globalization/globalize.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var appointments = new Array();
var appointment1 = {
id: "id1",
description: "George brings projector for presentations.",
location: "",
subject: "Fashion Expo",
calendar: "East Coast Events",
start: new Date(2017, 10, 15, 9, 0, 0),
end: new Date(2017, 10, 18, 16, 0, 0)
}
var appointment2 = {
id: "id2",
description: "",
location: "",
subject: "Cloud Data Expo",
calendar: "Middle West Events",
start: new Date(2017, 10, 20, 10, 0, 0),
end: new Date(2017, 10, 22, 15, 0, 0)
}
var appointment3 = {
id: "id3",
description: "",
location: "",
subject: "Digital Media Conference",
calendar: "West Coast Events",
start: new Date(2017, 10, 23, 11, 0, 0),
end: new Date(2017, 10, 28, 13, 0, 0)
}
var appointment4 = {
id: "id4",
description: "",
location: "",
subject: "Modern Software Development Conference",
calendar: "West Coast Events",
start: new Date(2017, 10, 10, 16, 0, 0),
end: new Date(2017, 10, 12, 18, 0, 0)
}
var appointment5 = {
id: "id5",
description: "",
location: "",
subject: "Marketing Future Expo",
calendar: "Middle West Events",
start: new Date(2017, 10, 5, 15, 0, 0),
end: new Date(2017, 10, 6, 17, 0, 0)
}
var appointment6 = {
id: "id6",
description: "",
location: "",
subject: "Future Computing",
calendar: "East Coast Events",
start: new Date(2017, 10, 13, 14, 0, 0),
end: new Date(2017, 10, 20, 16, 0, 0)
}
appointments.push(appointment1);
appointments.push(appointment2);
appointments.push(appointment3);
appointments.push(appointment4);
appointments.push(appointment5);
appointments.push(appointment6);
// prepare the data
var 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
};
var adapter = new $.jqx.dataAdapter(source);
var printButton = null;
$("#scheduler").jqxScheduler({
date: new $.jqx.date(2017, 11, 23),
width: getWidth("Scheduler"),
height: 600,
source: adapter,
showLegend: true,
// called when the dialog is craeted.
editDialogCreate: function (dialog, fields, editAppointment) {
// hide repeat option
fields.repeatContainer.hide();
// hide status option
fields.statusContainer.hide();
// hide timeZone option
fields.timeZoneContainer.hide();
// hide color option
fields.colorContainer.hide();
fields.subjectLabel.html("Title");
fields.locationLabel.html("Where");
fields.fromLabel.html("Start");
fields.toLabel.html("End");
fields.resourceLabel.html("Calendar");
// add custom print button.
printButton = $("<button style='margin-left: 5px; float:right;'>Print</button>");
fields.buttons.append(printButton);
printButton.jqxButton({ theme: this.theme });
printButton.click(function () {
var appointment = editAppointment;
if (!appointment)
return;
var appointmentContent =
"<table class='printTable'>" +
"<tr>" +
"<td class='label'>Title</td>" +
"<td>" + fields.subject.val() + "</td>" +
"</tr>" +
"<tr>" +
"<td class='label'>Start</td>" +
"<td>" + fields.from.val() + "</td>" +
"</tr>" +
"<tr>" +
"<td class='label'>End</td>" +
"<td>" + fields.to.val() + "</td>" +
"</tr>" +
"<tr>" +
"<td class='label'>Where</td>" +
"<td>" + fields.location.val() + "</td>" +
"</tr>" +
"<tr>" +
"<td class='label'>Calendar</td>" +
"<td>" + fields.resource.val() + "</td>" +
"</tr>"
+ "</table>";
var newWindow = window.open('', '', 'width=800, height=500'),
document = newWindow.document.open(),
pageContent =
' \n' +
'<html>\n' +
'<head>\n' +
'<meta charset="utf-8" />\n' +
'<title>jQWidgets Scheduler</title>\n' +
'<style>\n' +
'.printTable {\n' +
'border-color: #aaa;\n' +
'}\n' +
'.printTable .label {\n' +
'font-weight: bold;\n' +
'}\n' +
'.printTable td{\n' +
'padding: 4px 3px;\n' +
'border: 1px solid #DDD;\n' +
'vertical-align: top;\n' +
'}\n' +
'</style>' +
'</head>\n' +
'<body>\n' + appointmentContent + '\n
<div style="position: absolute; bottom: 5px; right: 5px;">
<a href="https://www.jqwidgets.com/" alt="https://www.jqwidgets.com/"><img alt="https://www.jqwidgets.com/" title="https://www.jqwidgets.com/" src="https://www.jqwidgets.com/wp-content/design/i/logo-jqwidgets.png"/></a>
</div>
</body>\n</html>';
try
{
document.write(pageContent);
document.close();
}
catch (error) {
}
newWindow.print();
});
},
/**
* called when the dialog is opened. Returning true as a result disables the built-in handler.
* @param {Object} dialog - jqxWindow's jQuery object.
* @param {Object} fields - Object with all widgets inside the dialog.
* @param {Object} the selected appointment instance or NULL when the dialog is opened from cells selection.
*/
editDialogOpen: function (dialog, fields, editAppointment) {
if (!editAppointment && printButton) {
printButton.jqxButton({ disabled: true });
}
else if (editAppointment && printButton) {
printButton.jqxButton({ disabled: false });
}
},
/**
* called when the dialog is closed.
* @param {Object} dialog - jqxWindow's jQuery object.
* @param {Object} fields - Object with all widgets inside the dialog.
* @param {Object} the selected appointment instance or NULL when the dialog is opened from cells selection.
*/
editDialogClose: function (dialog, fields, editAppointment) {
},
/**
* called when a key is pressed while the dialog is on focus. Returning true or false as a result disables the built-in keyDown handler.
* @param {Object} dialog - jqxWindow's jQuery object.
* @param {Object} fields - Object with all widgets inside the dialog.
* @param {Object} the selected appointment instance or NULL when the dialog is opened from cells selection.
* @param {jQuery.Event Object} the keyDown event.
*/
editDialogKeyDown: function (dialog, fields, editAppointment, event) {
},
resources:
{
colorScheme: "scheme01",
dataField: "calendar",
source: new $.jqx.dataAdapter(source)
},
appointmentDataFields:
{
from: "start",
to: "end",
id: "id",
description: "description",
location: "place",
subject: "subject",
resourceId: "calendar"
},
view: "monthView",
views:
[
'dayView',
'weekView',
'monthView'
]
});
});
</script>
</head>
<body class='default'>
<div id="scheduler"></div>
<div style="position: absolute; bottom: 5px; right: 5px;">
<a href="https://www.jqwidgets.com/" alt="https://www.jqwidgets.com/"><img alt="https://www.jqwidgets.com/" title="https://www.jqwidgets.com/" src="https://www.jqwidgets.com/wp-content/design/i/logo-jqwidgets.png"/></a>
</div>
</body>
</html>