diff options
-rw-r--r-- | src/main/java/eu/mulk/mulkcms2/benki/bookmarks/BookmarkResource.java | 4 | ||||
-rw-r--r-- | src/main/resources/META-INF/resources/bookmarks/MlkBookmarkSubmissionForm.js | 22 |
2 files changed, 21 insertions, 5 deletions
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/BookmarkResource.java b/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/BookmarkResource.java index 40f7166..d35a1dc 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/BookmarkResource.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/BookmarkResource.java @@ -62,6 +62,7 @@ public class BookmarkResource extends PostResource { @FormParam("uri") @NotNull URI uri, @FormParam("title") @NotEmpty String title, @FormParam("description") @CheckForNull String description, + @FormParam("via") @CheckForNull String via, @FormParam("visibility") @NotNull Post.Visibility visibility) throws URISyntaxException { @@ -69,6 +70,7 @@ public class BookmarkResource extends PostResource { var bookmark = new Bookmark(); bookmark.uri = uri.toString(); + bookmark.via = (via != null && !via.trim().isEmpty()) ? via : null; bookmark.tags = Set.of(); bookmark.owner = user; bookmark.date = OffsetDateTime.now(); @@ -94,6 +96,7 @@ public class BookmarkResource extends PostResource { @FormParam("uri") @NotNull URI uri, @FormParam("title") @NotEmpty String title, @FormParam("description") @CheckForNull String description, + @FormParam("via") @CheckForNull String via, @FormParam("visibility") Post.Visibility visibility) throws URISyntaxException { @@ -110,6 +113,7 @@ public class BookmarkResource extends PostResource { } bookmark.uri = uri.toString(); + bookmark.via = (via != null && !via.trim().isEmpty()) ? via : null; bookmark.tags = Set.of(); bookmark.setTitle(title); bookmark.setDescription(description); diff --git a/src/main/resources/META-INF/resources/bookmarks/MlkBookmarkSubmissionForm.js b/src/main/resources/META-INF/resources/bookmarks/MlkBookmarkSubmissionForm.js index 83242ba..2a2c779 100644 --- a/src/main/resources/META-INF/resources/bookmarks/MlkBookmarkSubmissionForm.js +++ b/src/main/resources/META-INF/resources/bookmarks/MlkBookmarkSubmissionForm.js @@ -21,6 +21,9 @@ template.innerHTML = ` <label for="description-input">Description:</label> <textarea name="description" id="description-input" placeholder="Description"></textarea> + <label for="via-input">Via:</label> + <input name="via" id="via-input" type="text" placeholder="Source URI" /> + <label for="visibility-input">Visibility:</label> <select id="visibility-input" name="visibility" required> <option value="PUBLIC" selected>Public</option> @@ -41,6 +44,7 @@ export class MlkBookmarkSubmissionForm extends HTMLElement { titleInput: HTMLInputElement; uriInput: HTMLInputElement; uriSpinner: ProgressSpinner; + viaInput: HTMLInputElement; visibilityInput: HTMLInputElement; loaded: boolean; */ @@ -50,7 +54,7 @@ export class MlkBookmarkSubmissionForm extends HTMLElement { this.loaded = false; } - static get observedAttributes() { + static get observedAttributes() /*: Array<string>*/ { return []; } @@ -76,6 +80,8 @@ export class MlkBookmarkSubmissionForm extends HTMLElement { cast(shadow.getElementById('uri-input')); this.uriSpinner = cast(shadow.getElementById('uri-spinner')); + this.viaInput = + cast(shadow.getElementById('via-input')); this.visibilityInput = cast(shadow.getElementById('visibility-input')); @@ -88,6 +94,7 @@ export class MlkBookmarkSubmissionForm extends HTMLElement { this.uriInput.value = this.uri || ""; this.titleInput.value = this.titleText || ""; this.descriptionInput.innerText = this.description || ""; + this.viaInput.value = this.via || ""; } get editedId() /*:number | null*/ { @@ -99,7 +106,7 @@ export class MlkBookmarkSubmissionForm extends HTMLElement { return parseInt(attr, 10); } - get isEditor() { + get isEditor() /*: boolean*/ { return this.editedId !== null; } @@ -112,18 +119,22 @@ export class MlkBookmarkSubmissionForm extends HTMLElement { attributeChangedCallback(name /*:string*/, oldValue /*:string*/, newValue /*:string*/) { } - get uri() { + get uri() /*: ?string*/ { return this.getAttribute("uri"); } - get titleText() { + get titleText() /*: ?string*/ { return this.getAttribute("title"); } - get description() { + get description() /*: ?string*/ { return this.getAttribute("description"); } + get via() /*: ?string*/ { + return this.getAttribute("via"); + } + focus() { this.show(); if (!this.uriInput.value) { @@ -172,6 +183,7 @@ export class MlkBookmarkSubmissionForm extends HTMLElement { let post = await r.json(); this.uriInput.value = post.uri; + this.viaInput.value = post.via || ""; this.visibilityInput.value = post.visibility; if (post.texts['']) { this.titleInput.value = post.texts[''].title; |