Kann mir einer sagen wo hier der Fehler liegt ?
<script>
function updateNinoxDate(unit, value) {
console.log('updateNinoxDate called with unit:', unit, 'value:', value);
const apiUrl = 'https://api.ninox.com/v1/teams/XXXXXXX/databases/XXXXXX/modules/A/records';
const newData = {
dateField: calculateNewDate(unit, value)
};
console.log('Data to be sent:', newData); // Debugging-Log
fetch(apiUrl, {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
'Authorization': 'XXXXXXXXXXXXXXXXXXX'
},
body: JSON.stringify(newData)
})
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
}
function calculateNewDate(unit, value) {
const currentDate = new Date();
switch (unit) {
case 'day':
currentDate.setDate(currentDate.getDate() + value);
break;
case 'month':
currentDate.setMonth(currentDate.getMonth() + value);
break;
case 'week':
currentDate.setDate(currentDate.getDate() + (value * 7));
break;
case 'today':
currentDate.setDate(new Date().getDate());
break;
}
return currentDate.toISOString(); // Rückgabe im ISO-Format
}
</script>
";
html(css + content + script)
8 Antworten
-
Ninox API hat keinen Endpoint mit Method "PATCH". Du suchst entweder PUT oder POST.
Bitte schreib noch etwas genauer, welcher console.log funktioniert bzw. bis wohin das Script korrekt ausführt und wo der Fehler auftritt. -
So könnte ein simpler JS button aussehen, der das Datum eines Feldes um einen Tag nach oben inkrementiert:
html("<script> function myfunction(inputDate) { var mydate = new Date(inputDate) mydate.setDate(mydate.getDate() + 1); database.update('" + raw(this) + "','" + fieldId(this, "Datum") + "',mydate) } </script><button onclick='myfunction(" + raw(Datum) + ")'>Click Me</button>")
-
let css := "
<style>
.myButton {
background-color: #8A2BE2;
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
border-radius: 12px;
transition: background-color 0.3s, box-shadow 0.3s;
}.myButton:hover {
background-color: #6A1B9A;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
</style>
";
let js := "
<script>
function adjustDate(days) {
var mydate = new Date('" +
format(Datum, "YYYY-MM-DD") +
"');
mydate.setDate(mydate.getDate() + days);
database.update('" +
raw(this) +
"', '" +
fieldId(this, "Datum") +
"', mydate);
}function adjustWeek(weeks) {
var mydate = new Date('" +
format(Datum, "YYYY-MM-DD") +
"');
mydate.setDate(mydate.getDate() + (weeks * 7));
database.update('" +
raw(this) +
"', '" +
fieldId(this, "Datum") +
"', mydate);
}function adjustMonth(months) {
var mydate = new Date('" +
format(Datum, "YYYY-MM-DD") +
"');
mydate.setMonth(mydate.getMonth() + months);
database.update('" +
raw(this) +
"', '" +
fieldId(this, "Datum") +
"', mydate);
}function setToday() {
var mydate = new Date();
database.update('" +
raw(this) +
"', '" +
fieldId(this, "Datum") +
"', mydate);
}
</script>
";
let buttons := "
<div style='text-align: center; margin-bottom: 20px;'>
<button class='myButton' onclick='adjustDate(-1)'>- Tag</button>
<button class='myButton' onclick='adjustDate(1)'>+ Tag</button>
<button class='myButton' onclick='adjustWeek(-1)'>- Woche</button>
<button class='myButton' onclick='adjustWeek(1)'>+ Woche</button>
<button class='myButton' onclick='adjustMonth(-1)'>- Monat</button>
<button class='myButton' onclick='adjustMonth(1)'>+ Monat</button>
<button class='myButton' onclick='setToday()'>Datum aktuell</button>
</div>
";
html(css + js + buttons) -
So sieht es jetzt aus......Für Tag- Woche-Monat- und aktueller Tag. Vielen Dank.
Content aside
- vor 18 StundenZuletzt aktiv
- 8Antworten
- 61Ansichten
-
2
Folge bereits