Compare commits
No commits in common. "a8a9c802be7a018aca1db966e839ee0d1a5a8ddf" and "71313757e8c663fb095c6712e2b78ea34cb58810" have entirely different histories.
a8a9c802be
...
71313757e8
@ -264,22 +264,7 @@ class BBTimeline {
|
|||||||
|
|
||||||
if (a.Debug) console.log(event);
|
if (a.Debug) console.log(event);
|
||||||
|
|
||||||
a.OnMouseDown(this, e, event);
|
a.OnEventClick(this, e, event);
|
||||||
});
|
|
||||||
|
|
||||||
a.ctx.canvas.addEventListener('click', function (e) {
|
|
||||||
if (!a.Enabled) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var event = a.FindEventsByCoords(e.offsetX, e.offsetY);
|
|
||||||
if (event == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (a.Debug) console.log(event);
|
|
||||||
|
|
||||||
a.OnClick(this, e, event);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -396,10 +381,7 @@ class BBTimeline {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
OnMouseDown(sender, e, event) {
|
OnEventClick(sender, e, event) {
|
||||||
}
|
|
||||||
|
|
||||||
OnClick(sender, e, event) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
5
bbtimeline.min.js
vendored
5
bbtimeline.min.js
vendored
File diff suppressed because one or more lines are too long
298
demo-test.html
298
demo-test.html
@ -17,71 +17,29 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="column1">
|
|
||||||
<canvas id="myCanvas"></canvas>
|
<canvas id="myCanvas"></canvas>
|
||||||
|
|
||||||
<p>
|
|
||||||
<textarea id="memoBox1" readonly></textarea>
|
|
||||||
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="column2">
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<button onclick="Clear()">Clear</button>
|
<button onclick="Clear()">Clear</button>
|
||||||
|
<button onclick="LoadDemo()">Load Demo Events</button>
|
||||||
<button onclick="ToggleDebug()">Toggle Debug</button>
|
<button onclick="ToggleDebug()">Toggle Debug</button>
|
||||||
<button onclick="Refresh()">Refresh</button>
|
|
||||||
</p>
|
</p>
|
||||||
<hr />
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<button onclick="SetToday()">Set Today</button>
|
<button onclick="LoadToday()">Show Start Date</button>
|
||||||
|
<button onclick="LoadPrevious()">Show Previous Month</button>
|
||||||
|
<button onclick="LoadNext()">Show Next Month</button>
|
||||||
</p>
|
</p>
|
||||||
<hr />
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<button onclick="GenerateRandomMarker()">Add/Generate Random Marker</button>
|
<button onclick="UpdateLabel()">Update Label</button>
|
||||||
</p>
|
<button onclick="UpdateMarker()">Update Marker</button>
|
||||||
<hr />
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<button onclick="GoToToday()">Show Start Date</button>
|
|
||||||
<button onclick="GoToPreviousMonth()">Show Previous Month</button>
|
|
||||||
<button onclick="GoToNextMonth()">Show Next Month</button>
|
|
||||||
</p>
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<button onclick="UpdateLabel()">Rename Marker</button>
|
|
||||||
<button onclick="UpdateMarker()">Change Marker Style</button>
|
|
||||||
<button onclick="DeleteMarker()">Delete Marker</button>
|
<button onclick="DeleteMarker()">Delete Marker</button>
|
||||||
</p>
|
</p>
|
||||||
<hr />
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
<button onclick="GetDisplayedDateRange()">Get Displayed Date Range</button>
|
||||||
|
<button onclick="FindEvent()">Find Event</button>
|
||||||
|
<button onclick="FindDatePosition()">Find Date Position</button>
|
||||||
<button onclick="FindVisibleEvents()">Find Visible Events</button>
|
<button onclick="FindVisibleEvents()">Find Visible Events</button>
|
||||||
<button onclick="FindAllEvents()">Find All Events</button>
|
|
||||||
</p>
|
</p>
|
||||||
<hr />
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<input type="date" id="textbox1" />
|
|
||||||
<button onclick="FindEvent()">Find Event (By Date)</button>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<input type="date" id="textbox2" />
|
|
||||||
<button onclick="FindDatePosition()">Find Date Position (If Visible)</button>
|
|
||||||
</p>
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
body {
|
body {
|
||||||
@ -98,227 +56,117 @@ canvas {
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
textarea {
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 1px;
|
|
||||||
border-color: #000000;
|
|
||||||
min-height: calc(100vh - 500px);
|
|
||||||
padding: 10px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.column1 {
|
|
||||||
flex: 70%;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
.column2 {
|
|
||||||
flex: 30%;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
.row {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
var timeline1 = new BBTimeline("myCanvas");
|
var timeline1 = new BBTimeline("myCanvas");
|
||||||
timeline1.OnMouseDown = function(sender, e, event) {
|
timeline1.OnEventClick = function(sender, e, event) {
|
||||||
LogInfo("");
|
// console.log(e);
|
||||||
LogInfo("OnMouseDown");
|
|
||||||
LogInfo(JSON.stringify(sender));
|
|
||||||
LogInfo(JSON.stringify(e));
|
|
||||||
LogInfo(JSON.stringify(event));
|
|
||||||
LogInfo("");
|
|
||||||
}
|
|
||||||
timeline1.OnClick = function(sender, e, event) {
|
|
||||||
LogInfo("");
|
|
||||||
LogInfo("OnClick");
|
|
||||||
LogInfo(JSON.stringify(sender));
|
|
||||||
LogInfo(JSON.stringify(e));
|
|
||||||
LogInfo(JSON.stringify(event));
|
|
||||||
LogInfo("");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SetToday();
|
LoadDemo();
|
||||||
|
LoadToday();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function Clear() {
|
function Clear()
|
||||||
|
{
|
||||||
timeline1.Clear(true);
|
timeline1.Clear(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function ToggleDebug() {
|
function LoadDemo()
|
||||||
|
{
|
||||||
|
timeline1.AddEvent("2001-01-05", "Event", { Title: Math.random(), Description: Math.random() });
|
||||||
|
timeline1.AddEvent("2001-01-06", "Event", { Title: Math.random(), Description: Math.random() });
|
||||||
|
timeline1.AddEvent("2001-01-06", null, { Title: Math.random(), Description: Math.random() });
|
||||||
|
timeline1.AddEvent("2001-01-16", "Event", { Title: Math.random(), Description: Math.random() });
|
||||||
|
timeline1.AddEvent("2001-01-06", "Event 2", { Title: Math.random(), Description: Math.random() });
|
||||||
|
timeline1.AddEvent("2001-01-06", null, { Title: Math.random(), Description: Math.random() });
|
||||||
|
|
||||||
|
timeline1.AddEvent("2001-01-20", "Very Long Event", { Title: Math.random(), Description: Math.random() });
|
||||||
|
timeline1.AddEvent("2001-01-21", "Event", { Title: Math.random(), Description: Math.random() });
|
||||||
|
timeline1.AddEvent("2001-01-23", "Event", { Title: Math.random(), Description: Math.random() });
|
||||||
|
timeline1.AddEvent("2001-01-26", "Event", { Title: Math.random(), Description: Math.random() });
|
||||||
|
|
||||||
|
timeline1.AddEvent("2001-02-05", "Event", { Title: Math.random(), Description: Math.random() });
|
||||||
|
timeline1.AddEvent("2001-02-07", "Event", { Title: Math.random(), Description: Math.random() });
|
||||||
|
|
||||||
|
LoadToday();
|
||||||
|
timeline1.Invalidate(false, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ToggleDebug()
|
||||||
|
{
|
||||||
timeline1.Debug = !timeline1.Debug;
|
timeline1.Debug = !timeline1.Debug;
|
||||||
timeline1.Invalidate(true, true);
|
timeline1.Invalidate(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Refresh() {
|
function LoadToday()
|
||||||
timeline1.Invalidate(true, true);
|
{
|
||||||
|
// const date = timeline1.DateToString(new Date(), "yyyy-MM-dd");
|
||||||
|
|
||||||
|
timeline1.Load("2001-01-01");
|
||||||
}
|
}
|
||||||
|
|
||||||
function SetToday() {
|
function LoadPrevious()
|
||||||
const msPerDay = 1000 * 60 * 60 * 24;
|
{
|
||||||
const startDate = timeline1.DateToString(new Date(), "yyyy-MM-dd");
|
|
||||||
|
|
||||||
timeline1.Load(startDate);
|
|
||||||
|
|
||||||
const endDate = timeline1.CalcEndDate();
|
|
||||||
const noDays = Math.floor((timeline1.ConvertToDate(endDate) - timeline1.ConvertToDate(startDate)) / msPerDay);
|
|
||||||
|
|
||||||
LogInfo("Set start date to today (" + startDate + ")");
|
|
||||||
LogInfo("Show " + startDate + " to " + endDate + " (" + noDays + " days)");
|
|
||||||
}
|
|
||||||
|
|
||||||
function GenerateRandomMarker() {
|
|
||||||
const msPerDay = 1000 * 60 * 60 * 24;
|
|
||||||
const endDate = timeline1.CalcEndDate();
|
|
||||||
const noDays = Math.floor((timeline1.ConvertToDate(endDate) - timeline1.ConvertToDate(timeline1.ShowDate)) / msPerDay);
|
|
||||||
|
|
||||||
let randomDay = GetRandy(1, (noDays - 1));
|
|
||||||
|
|
||||||
let date = timeline1.ConvertToDate(timeline1.ShowDate);
|
|
||||||
date.setDate(date.getDate() + randomDay);
|
|
||||||
|
|
||||||
const markerDate = timeline1.DateToString(date, timeline1.DateParsePattern);
|
|
||||||
|
|
||||||
const markerName = "Random Marker #" + GetRandy(10000, 99999);
|
|
||||||
|
|
||||||
timeline1.AddEvent(markerDate, markerName, { Title: markerName, Description: "This is a randomly generated marker" });
|
|
||||||
timeline1.Invalidate(false, true);
|
|
||||||
|
|
||||||
LogInfo("Add marker (" + markerDate + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
function GoToToday() {
|
|
||||||
timeline1.Show(timeline1.StartDate);
|
|
||||||
|
|
||||||
LogInfo("Go to " + timeline1.ShowDate);
|
|
||||||
}
|
|
||||||
|
|
||||||
function GoToPreviousMonth() {
|
|
||||||
timeline1.ShowPrevious();
|
timeline1.ShowPrevious();
|
||||||
|
|
||||||
LogInfo("Go to " + timeline1.ShowDate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function GoToNextMonth() {
|
function LoadNext()
|
||||||
|
{
|
||||||
timeline1.ShowNext();
|
timeline1.ShowNext();
|
||||||
|
|
||||||
LogInfo("Go to " + timeline1.ShowDate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function UpdateLabel() {
|
function UpdateLabel()
|
||||||
const visibleMarkers = timeline1.FindVisibleEvents();
|
{
|
||||||
if (visibleMarkers.length <= 0) {
|
timeline1.UpdateLabel("2001-01-21", "Very Long Event");
|
||||||
LogInfo("No visible markers");
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const randy = GetRandy(0, (visibleMarkers.length - 1));
|
function UpdateMarker()
|
||||||
const newMarkerName = "Renamed Random Marker #" + GetRandy(10000, 99999);
|
{
|
||||||
|
timeline1.UpdateMarker("2001-01-21", "#E68422", "#FAE7D3");
|
||||||
LogInfo("Renamed marker #" + randy + " [" + visibleMarkers[randy].Label + "] to [" + newMarkerName + "]");
|
|
||||||
|
|
||||||
timeline1.UpdateLabel(visibleMarkers[randy].Date, newMarkerName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function UpdateMarker() {
|
function DeleteMarker()
|
||||||
const visibleMarkers = timeline1.FindVisibleEvents();
|
{
|
||||||
if (visibleMarkers.length <= 0) {
|
timeline1.DeleteMarker("2001-01-06");
|
||||||
LogInfo("No visible markers");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const randy = GetRandy(0, (visibleMarkers.length - 1));
|
|
||||||
|
|
||||||
LogInfo("Change marker style #" + randy + " [" + visibleMarkers[randy].Label + "]");
|
|
||||||
|
|
||||||
timeline1.UpdateMarker(visibleMarkers[randy].Date, "#E68422", "#FAE7D3");
|
|
||||||
}
|
|
||||||
|
|
||||||
function DeleteMarker() {
|
|
||||||
const visibleMarkers = timeline1.FindVisibleEvents();
|
|
||||||
if (visibleMarkers.length <= 0) {
|
|
||||||
LogInfo("No visible markers");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const randy = GetRandy(0, (visibleMarkers.length - 1));
|
|
||||||
|
|
||||||
LogInfo("Delete marker #" + randy + " [" + visibleMarkers[randy].Label + "]");
|
|
||||||
|
|
||||||
timeline1.DeleteMarker(visibleMarkers[randy].Date);
|
|
||||||
timeline1.Invalidate(false, true);
|
timeline1.Invalidate(false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function FindVisibleEvents() {
|
function GetDisplayedDateRange()
|
||||||
const visibleMarkers = timeline1.FindVisibleEvents();
|
{
|
||||||
|
alert(timeline1.ShowDate + " - " + timeline1.CalcEndDate());
|
||||||
LogInfo("");
|
|
||||||
LogInfo(JSON.stringify(visibleMarkers));
|
|
||||||
LogInfo("");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function FindAllEvents() {
|
function FindEvent()
|
||||||
LogInfo("");
|
{
|
||||||
LogInfo(JSON.stringify(timeline1.Events));
|
const result = timeline1.FindEvent("2001-01-26");
|
||||||
LogInfo("");
|
|
||||||
}
|
|
||||||
|
|
||||||
function FindEvent() {
|
console.log(result);
|
||||||
const date = document.getElementById("textbox1").value;
|
|
||||||
if (date == null) {
|
|
||||||
LogInfo("No marker found");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const marker = timeline1.FindEvent(date);
|
alert(JSON.stringify(result));
|
||||||
if (marker == null) {
|
|
||||||
LogInfo("No marker found");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
LogInfo("");
|
|
||||||
LogInfo(JSON.stringify(marker));
|
|
||||||
LogInfo("");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function FindDatePosition()
|
function FindDatePosition()
|
||||||
{
|
{
|
||||||
const date = document.getElementById("textbox2").value;
|
const result = timeline1.FindDatePosition("2001-01-26");
|
||||||
if (date == null) {
|
|
||||||
LogInfo("No date position found");
|
console.log(result);
|
||||||
return;
|
|
||||||
|
alert(JSON.stringify(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
const marker = timeline1.FindDatePosition(date);
|
function FindVisibleEvents()
|
||||||
if (marker == null) {
|
|
||||||
LogInfo("No marker position found");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
LogInfo("");
|
|
||||||
LogInfo(JSON.stringify(marker));
|
|
||||||
LogInfo("");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function LogInfo(value)
|
|
||||||
{
|
{
|
||||||
document.getElementById("memoBox1").value += value + "\n";
|
const result = timeline1.FindVisibleEvents()
|
||||||
}
|
|
||||||
|
|
||||||
function GetRandy(min, max)
|
console.log(result);
|
||||||
{
|
|
||||||
let rand = Math.random();
|
|
||||||
rand = Math.floor(rand * (max - min));
|
|
||||||
rand = rand + min;
|
|
||||||
|
|
||||||
return rand;
|
alert(JSON.stringify(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
Reference in New Issue
Block a user