2020-04-10 11:53:25 +02:00
|
|
|
{% extends "sidebar.html" %}
|
|
|
|
{% block body%}
|
2020-04-14 22:11:34 +02:00
|
|
|
|
2020-05-21 18:33:58 +02:00
|
|
|
<div class="container">
|
|
|
|
<div style="width: 15rem; margin: 1rem">Calendar</div>
|
|
|
|
<div style="width: 10rem; margin: 1rem; padding-right: 5rem">Show on device</div>
|
|
|
|
<div style="width: 2rem; margin: 1rem">Color</div>
|
2020-04-10 11:53:25 +02:00
|
|
|
</div>
|
|
|
|
|
|
|
|
{% for item in calendars %}
|
2020-05-21 18:33:58 +02:00
|
|
|
<div class="container">
|
2020-07-25 19:45:37 +02:00
|
|
|
<!--action button-->
|
|
|
|
<div style="width: 4rem; margin: 1rem;">
|
|
|
|
<form action="" method="post">
|
|
|
|
<input type="hidden" name="calendar" value={{ item.calendarId }}>
|
|
|
|
<input type="submit" name="submit" value="Remove">
|
|
|
|
</form>
|
|
|
|
</div>
|
2020-04-14 22:11:34 +02:00
|
|
|
<!--Name-->
|
2020-05-21 18:33:58 +02:00
|
|
|
<div style="width: 15rem; margin: 1rem;">{{ item.name }}</div>
|
2020-04-10 11:53:25 +02:00
|
|
|
|
2020-04-14 22:11:34 +02:00
|
|
|
<!--Toggle-->
|
2020-05-21 18:33:58 +02:00
|
|
|
<div style="width: 10rem; margin: 1rem; padding-right: 5rem">
|
2020-04-14 22:11:34 +02:00
|
|
|
<!-- Rounded switch -->
|
|
|
|
<label class="switch">
|
2020-05-18 23:52:18 +02:00
|
|
|
<input class="toggle" id={{item.calendarId}} type="checkbox" toggled={{item.toggle}} onclick="toggleReaction(this)">
|
2020-05-21 15:38:22 +02:00
|
|
|
<span class="slider on round"></span>
|
2020-04-14 22:11:34 +02:00
|
|
|
</label>
|
|
|
|
</div>
|
2020-04-10 11:53:25 +02:00
|
|
|
|
2020-04-14 22:11:34 +02:00
|
|
|
<!--Color Selector-->
|
2020-05-21 18:33:58 +02:00
|
|
|
<div style="width: 2rem; margin: 1rem;">
|
2020-05-18 23:52:18 +02:00
|
|
|
<div class="colorPickSelector" id={{item.calendarId}} defaultColor={{item.color}}></div>
|
2020-04-14 22:11:34 +02:00
|
|
|
<!--svg height="20" width="20">
|
|
|
|
<circle cx="10" cy="10" r="10" stroke="black" stroke-width="0" fill={{ item.color }} />
|
|
|
|
</svg-->
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
2020-04-10 11:53:25 +02:00
|
|
|
{% endfor %}
|
2020-05-24 13:26:41 +02:00
|
|
|
<div id=calendars class="container">
|
|
|
|
</div>
|
2020-07-25 10:50:02 +02:00
|
|
|
<form action="" method="post">
|
|
|
|
<div class="container grey" style="margin-top: 3rem;">
|
|
|
|
<div>{{ form.hidden_tag() }}</div>
|
2020-07-25 18:05:55 +02:00
|
|
|
<div style="margin: 1rem">{{ form.calName.label }}</div>
|
|
|
|
<div style="margin: 1rem">{{ form.calName(size=24) }}</div>
|
2020-07-25 10:50:02 +02:00
|
|
|
<div style="margin: 1rem">{{ form.iCalURL.label }}</div>
|
|
|
|
<div style="margin: 1rem">{{ form.iCalURL(size=24) }}</div>
|
|
|
|
<div style="with: 8rem; margin: 1rem">{{ form.submit() }}</div>
|
|
|
|
{% for error in form.iCalURL.errors %}
|
|
|
|
<span style="color: red;">[{{ error }}]</span>
|
|
|
|
{% endfor %}
|
2020-05-21 18:33:58 +02:00
|
|
|
</div>
|
2020-07-25 10:50:02 +02:00
|
|
|
</form>
|
|
|
|
<!--div class="container">
|
|
|
|
<a class="button addcalendar" href="/login/google" style="width: auto; margin: 4rem">Add Calendar</a>
|
|
|
|
</div-->
|
2020-04-14 22:11:34 +02:00
|
|
|
|
|
|
|
<script type="text/javascript">
|
2020-04-15 20:47:41 +02:00
|
|
|
|
2020-04-17 18:54:35 +02:00
|
|
|
|
|
|
|
var init = false;
|
|
|
|
|
|
|
|
|
|
|
|
// initialize all DOM items
|
2020-04-14 22:11:34 +02:00
|
|
|
$(".colorPickSelector").colorPick({
|
|
|
|
'initialColor': '#3498db',
|
|
|
|
'allowRecent': true,
|
|
|
|
'recentMax': 5,
|
|
|
|
'allowCustomColor': false,
|
|
|
|
'palette': ["#1abc9c", "#16a085", "#2ecc71", "#27ae60", "#3498db", "#2980b9", "#9b59b6", "#8e44ad", "#34495e", "#2c3e50", "#f1c40f", "#f39c12", "#e67e22", "#d35400", "#e74c3c", "#c0392b", "#ecf0f1", "#bdc3c7", "#95a5a6", "#7f8c8d"],
|
|
|
|
'onColorSelected': function() {
|
2020-04-17 18:54:35 +02:00
|
|
|
if(!init) {
|
|
|
|
return;
|
|
|
|
}
|
2020-04-14 22:11:34 +02:00
|
|
|
// Todo getting the element id is currently done over [0] [#02]
|
|
|
|
this.element.css({'backgroundColor': this.color, 'color': this.color});
|
2020-05-11 23:00:00 +02:00
|
|
|
|
2020-04-14 22:11:34 +02:00
|
|
|
post("color", this.element[0].id, this.color);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2020-04-17 18:54:35 +02:00
|
|
|
($(".toggle").each(function() {
|
|
|
|
var toggle = true;
|
|
|
|
console.log($(this).attr('toggled'));
|
|
|
|
if($(this).attr('toggled') == "True") {
|
|
|
|
toggle = false;
|
|
|
|
} else if ($(this).attr('toggled') == "False") {
|
|
|
|
toggle = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
$(this).prop('checked', toggle);
|
|
|
|
}));
|
|
|
|
|
2020-04-15 20:47:41 +02:00
|
|
|
($(".colorPickSelector").each(function() {
|
2020-04-17 18:54:35 +02:00
|
|
|
// console.log($( this )[0].attributes.getNamedItem("style"));
|
2020-04-15 20:47:41 +02:00
|
|
|
var color = $( this )[0].attributes.getNamedItem("defaultcolor").nodeValue;
|
|
|
|
var style = document.createAttribute("style");
|
|
|
|
style.value = 'background-color: ' + color + '; color: ' + color + ';';
|
|
|
|
$( this )[0].attributes.setNamedItem(style);
|
|
|
|
|
2020-04-17 18:54:35 +02:00
|
|
|
// console.log($( this )[0].attributes.getNamedItem("style"));
|
2020-04-15 20:47:41 +02:00
|
|
|
|
|
|
|
}));
|
|
|
|
|
2020-04-14 22:11:34 +02:00
|
|
|
function post(type, id, data) {
|
2020-05-18 23:52:18 +02:00
|
|
|
var url = "calendar";
|
2020-04-14 22:11:34 +02:00
|
|
|
var method = "POST";
|
|
|
|
switch (type) {
|
|
|
|
case "color":
|
|
|
|
var postData = JSON.stringify({"calendar_id": id.toString(), "color": data.toString()});
|
|
|
|
break;
|
|
|
|
case "toggle":
|
|
|
|
var postData = JSON.stringify({"calendar_id": id.toString(), "toggle": data.toString()})
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
console.log(postData);
|
|
|
|
|
|
|
|
var shouldBeAsync = true;
|
|
|
|
|
|
|
|
var request = new XMLHttpRequest();
|
|
|
|
request.onload = function () {
|
|
|
|
var status = request.status;
|
|
|
|
var data = request.responseText;
|
|
|
|
}
|
|
|
|
|
|
|
|
request.open(method, url, shouldBeAsync);
|
|
|
|
// content type json makes app do error 400
|
|
|
|
request.setRequestHeader("Content-Type", "application/json");
|
|
|
|
request.send(postData);
|
|
|
|
}
|
|
|
|
|
|
|
|
function toggleReaction(self) {
|
|
|
|
// the slider used defaults to inverted information [#01]
|
2020-04-17 18:54:35 +02:00
|
|
|
var data;
|
|
|
|
if(self.checked) {
|
|
|
|
data = "False";
|
|
|
|
} else {
|
|
|
|
data = "True";
|
2020-04-14 22:11:34 +02:00
|
|
|
}
|
2020-04-17 18:54:35 +02:00
|
|
|
post("toggle", self.id, data);
|
2020-04-14 22:11:34 +02:00
|
|
|
}
|
2020-04-17 18:54:35 +02:00
|
|
|
init = true;
|
2020-04-14 22:11:34 +02:00
|
|
|
</script>
|
|
|
|
|
2020-05-18 23:52:18 +02:00
|
|
|
{% endblock %}
|