mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 14:42:30 +00:00
frontend: Add error handling to collection forms
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
import { html, LitElement } from "lit";
|
import { html, LitElement } from "lit";
|
||||||
import { customElement, property } from "lit/decorators.js";
|
import { customElement, property } from "lit/decorators.js";
|
||||||
import { Ref, createRef, ref } from 'lit/directives/ref.js';
|
import { Ref, createRef, ref } from 'lit/directives/ref.js';
|
||||||
import { createClient } from "webdav";
|
|
||||||
import { escapeXml } from ".";
|
import { escapeXml } from ".";
|
||||||
|
|
||||||
@customElement("create-addressbook-form")
|
@customElement("create-addressbook-form")
|
||||||
@@ -15,8 +14,6 @@ export class CreateAddressbookForm extends LitElement {
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
client = createClient("/carddav")
|
|
||||||
|
|
||||||
@property()
|
@property()
|
||||||
user: string = ''
|
user: string = ''
|
||||||
@property()
|
@property()
|
||||||
@@ -80,8 +77,12 @@ export class CreateAddressbookForm extends LitElement {
|
|||||||
alert("Empty displayname")
|
alert("Empty displayname")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
await this.client.createDirectory(`/principal/${this.principal || this.user}/${this.addr_id}`, {
|
let response = await fetch(`/carddav/principal/${this.principal || this.user}/${this.addr_id}`, {
|
||||||
data: `
|
method: 'MKCOL',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/xml'
|
||||||
|
},
|
||||||
|
body: `
|
||||||
<mkcol xmlns="DAV:" xmlns:CARD="urn:ietf:params:xml:ns:carddav">
|
<mkcol xmlns="DAV:" xmlns:CARD="urn:ietf:params:xml:ns:carddav">
|
||||||
<set>
|
<set>
|
||||||
<prop>
|
<prop>
|
||||||
@@ -91,7 +92,14 @@ export class CreateAddressbookForm extends LitElement {
|
|||||||
</set>
|
</set>
|
||||||
</mkcol>
|
</mkcol>
|
||||||
`
|
`
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (response.status >= 400) {
|
||||||
|
alert(`Error ${response.status}: ${await response.text()}`)
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
window.location.reload()
|
window.location.reload()
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { html, LitElement } from "lit";
|
import { html, LitElement } from "lit";
|
||||||
import { customElement, property } from "lit/decorators.js";
|
import { customElement, property } from "lit/decorators.js";
|
||||||
import { Ref, createRef, ref } from 'lit/directives/ref.js';
|
import { Ref, createRef, ref } from 'lit/directives/ref.js';
|
||||||
import { createClient } from "webdav";
|
|
||||||
import { escapeXml } from ".";
|
import { escapeXml } from ".";
|
||||||
|
|
||||||
@customElement("create-calendar-form")
|
@customElement("create-calendar-form")
|
||||||
@@ -14,8 +13,6 @@ export class CreateCalendarForm extends LitElement {
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
client = createClient("/caldav")
|
|
||||||
|
|
||||||
@property()
|
@property()
|
||||||
user: string = ''
|
user: string = ''
|
||||||
@property()
|
@property()
|
||||||
@@ -126,8 +123,13 @@ export class CreateCalendarForm extends LitElement {
|
|||||||
alert("No calendar components selected")
|
alert("No calendar components selected")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
await this.client.createDirectory(`/principal/${this.principal || this.user}/${this.cal_id}`, {
|
|
||||||
data: `
|
let response = await fetch(`/caldav/principal/${this.principal || this.user}/${this.cal_id}`, {
|
||||||
|
method: 'MKCOL',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/xml'
|
||||||
|
},
|
||||||
|
body: `
|
||||||
<mkcol xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ICAL="http://apple.com/ns/ical/">
|
<mkcol xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ICAL="http://apple.com/ns/ical/">
|
||||||
<set>
|
<set>
|
||||||
<prop>
|
<prop>
|
||||||
@@ -144,6 +146,11 @@ export class CreateCalendarForm extends LitElement {
|
|||||||
</mkcol>
|
</mkcol>
|
||||||
`
|
`
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (response.status >= 400) {
|
||||||
|
alert(`Error ${response.status}: ${await response.text()}`)
|
||||||
|
return null
|
||||||
|
}
|
||||||
window.location.reload()
|
window.location.reload()
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ export class EditAddressbookForm extends LitElement {
|
|||||||
alert("Empty displayname")
|
alert("Empty displayname")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
await fetch(`/carddav/principal/${this.principal}/${this.addr_id}`, {
|
let response = await fetch(`/carddav/principal/${this.principal}/${this.addr_id}`, {
|
||||||
method: 'PROPPATCH',
|
method: 'PROPPATCH',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/xml'
|
'Content-Type': 'application/xml'
|
||||||
@@ -85,6 +85,12 @@ export class EditAddressbookForm extends LitElement {
|
|||||||
`
|
`
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (response.status >= 400) {
|
||||||
|
alert(`Error ${response.status}: ${await response.text()}`)
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
window.location.reload()
|
window.location.reload()
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ export class EditCalendarForm extends LitElement {
|
|||||||
alert("No calendar components selected")
|
alert("No calendar components selected")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
await fetch(`/caldav/principal/${this.principal}/${this.cal_id}`, {
|
let response = await fetch(`/caldav/principal/${this.principal}/${this.cal_id}`, {
|
||||||
method: 'PROPPATCH',
|
method: 'PROPPATCH',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/xml'
|
'Content-Type': 'application/xml'
|
||||||
@@ -124,6 +124,12 @@ export class EditCalendarForm extends LitElement {
|
|||||||
</propertyupdate>
|
</propertyupdate>
|
||||||
`
|
`
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (response.status >= 400) {
|
||||||
|
alert(`Error ${response.status}: ${await response.text()}`)
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
window.location.reload()
|
window.location.reload()
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ export default defineConfig({
|
|||||||
format: "es",
|
format: "es",
|
||||||
manualChunks: {
|
manualChunks: {
|
||||||
lit: ["lit"],
|
lit: ["lit"],
|
||||||
webdav: ["webdav"],
|
// webdav: ["webdav"],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { i, x } from "./lit-z6_uA4GX.mjs";
|
import { i, x } from "./lit-z6_uA4GX.mjs";
|
||||||
import { n as n$1, t } from "./property-D0NJdseG.mjs";
|
import { n as n$1, t } from "./property-D0NJdseG.mjs";
|
||||||
import { e, n, a as escapeXml } from "./index-b86iLJlP.mjs";
|
import { e, n, a as escapeXml } from "./index-b86iLJlP.mjs";
|
||||||
import { a as an } from "./webdav-D0R7xCzX.mjs";
|
|
||||||
var __defProp = Object.defineProperty;
|
var __defProp = Object.defineProperty;
|
||||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||||
var __decorateClass = (decorators, target, key, kind) => {
|
var __decorateClass = (decorators, target, key, kind) => {
|
||||||
@@ -15,7 +14,6 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|||||||
let CreateAddressbookForm = class extends i {
|
let CreateAddressbookForm = class extends i {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
this.client = an("/carddav");
|
|
||||||
this.user = "";
|
this.user = "";
|
||||||
this.principal = "";
|
this.principal = "";
|
||||||
this.addr_id = "";
|
this.addr_id = "";
|
||||||
@@ -79,8 +77,12 @@ let CreateAddressbookForm = class extends i {
|
|||||||
alert("Empty displayname");
|
alert("Empty displayname");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await this.client.createDirectory(`/principal/${this.principal || this.user}/${this.addr_id}`, {
|
let response = await fetch(`/carddav/principal/${this.principal || this.user}/${this.addr_id}`, {
|
||||||
data: `
|
method: "MKCOL",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/xml"
|
||||||
|
},
|
||||||
|
body: `
|
||||||
<mkcol xmlns="DAV:" xmlns:CARD="urn:ietf:params:xml:ns:carddav">
|
<mkcol xmlns="DAV:" xmlns:CARD="urn:ietf:params:xml:ns:carddav">
|
||||||
<set>
|
<set>
|
||||||
<prop>
|
<prop>
|
||||||
@@ -91,6 +93,10 @@ let CreateAddressbookForm = class extends i {
|
|||||||
</mkcol>
|
</mkcol>
|
||||||
`
|
`
|
||||||
});
|
});
|
||||||
|
if (response.status >= 400) {
|
||||||
|
alert(`Error ${response.status}: ${await response.text()}`);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { i, x } from "./lit-z6_uA4GX.mjs";
|
import { i, x } from "./lit-z6_uA4GX.mjs";
|
||||||
import { n as n$1, t } from "./property-D0NJdseG.mjs";
|
import { n as n$1, t } from "./property-D0NJdseG.mjs";
|
||||||
import { e, n, a as escapeXml } from "./index-b86iLJlP.mjs";
|
import { e, n, a as escapeXml } from "./index-b86iLJlP.mjs";
|
||||||
import { a as an } from "./webdav-D0R7xCzX.mjs";
|
|
||||||
var __defProp = Object.defineProperty;
|
var __defProp = Object.defineProperty;
|
||||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||||
var __decorateClass = (decorators, target, key, kind) => {
|
var __decorateClass = (decorators, target, key, kind) => {
|
||||||
@@ -15,7 +14,6 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|||||||
let CreateCalendarForm = class extends i {
|
let CreateCalendarForm = class extends i {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
this.client = an("/caldav");
|
|
||||||
this.user = "";
|
this.user = "";
|
||||||
this.principal = "";
|
this.principal = "";
|
||||||
this.cal_id = "";
|
this.cal_id = "";
|
||||||
@@ -120,8 +118,12 @@ let CreateCalendarForm = class extends i {
|
|||||||
alert("No calendar components selected");
|
alert("No calendar components selected");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await this.client.createDirectory(`/principal/${this.principal || this.user}/${this.cal_id}`, {
|
let response = await fetch(`/caldav/principal/${this.principal || this.user}/${this.cal_id}`, {
|
||||||
data: `
|
method: "MKCOL",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/xml"
|
||||||
|
},
|
||||||
|
body: `
|
||||||
<mkcol xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ICAL="http://apple.com/ns/ical/">
|
<mkcol xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ICAL="http://apple.com/ns/ical/">
|
||||||
<set>
|
<set>
|
||||||
<prop>
|
<prop>
|
||||||
@@ -138,6 +140,10 @@ let CreateCalendarForm = class extends i {
|
|||||||
</mkcol>
|
</mkcol>
|
||||||
`
|
`
|
||||||
});
|
});
|
||||||
|
if (response.status >= 400) {
|
||||||
|
alert(`Error ${response.status}: ${await response.text()}`);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ let EditAddressbookForm = class extends i {
|
|||||||
alert("Empty displayname");
|
alert("Empty displayname");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await fetch(`/carddav/principal/${this.principal}/${this.addr_id}`, {
|
let response = await fetch(`/carddav/principal/${this.principal}/${this.addr_id}`, {
|
||||||
method: "PROPPATCH",
|
method: "PROPPATCH",
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": "application/xml"
|
"Content-Type": "application/xml"
|
||||||
@@ -85,6 +85,10 @@ let EditAddressbookForm = class extends i {
|
|||||||
</propertyupdate>
|
</propertyupdate>
|
||||||
`
|
`
|
||||||
});
|
});
|
||||||
|
if (response.status >= 400) {
|
||||||
|
alert(`Error ${response.status}: ${await response.text()}`);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ let EditCalendarForm = class extends i {
|
|||||||
alert("No calendar components selected");
|
alert("No calendar components selected");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await fetch(`/caldav/principal/${this.principal}/${this.cal_id}`, {
|
let response = await fetch(`/caldav/principal/${this.principal}/${this.cal_id}`, {
|
||||||
method: "PROPPATCH",
|
method: "PROPPATCH",
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": "application/xml"
|
"Content-Type": "application/xml"
|
||||||
@@ -114,6 +114,10 @@ let EditCalendarForm = class extends i {
|
|||||||
</propertyupdate>
|
</propertyupdate>
|
||||||
`
|
`
|
||||||
});
|
});
|
||||||
|
if (response.status >= 400) {
|
||||||
|
alert(`Error ${response.status}: ${await response.text()}`);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user