diff --git a/client/css/post-upload.styl b/client/css/post-upload.styl
index 9d15e218..e362be2a 100644
--- a/client/css/post-upload.styl
+++ b/client/css/post-upload.styl
@@ -53,6 +53,9 @@ $cancel-button-color = tomato
.pause-remain-on-error
margin-left: 1em
+ .upload-all-anonymous
+ margin-left: 1em
+
form>.messages
margin-top: 1em
diff --git a/client/html/post_upload.tpl b/client/html/post_upload.tpl
index 54a9871d..de5d32ee 100644
--- a/client/html/post_upload.tpl
+++ b/client/html/post_upload.tpl
@@ -29,6 +29,14 @@
}) %>
+
+ <%= ctx.makeCheckbox({
+ text: 'Upload anonymously',
+ name: 'upload-all-anonymous',
+ checked: false,
+ }) %>
+
+
<%= ctx.makeTextInput({placeholder: 'Common tags', id: 'common-tags', name: 'common-tags', style: 'margin-top:1em;'}) %>
diff --git a/client/js/views/post_upload_view.js b/client/js/views/post_upload_view.js
index ccabacf6..33c40de1 100644
--- a/client/js/views/post_upload_view.js
+++ b/client/js/views/post_upload_view.js
@@ -313,12 +313,11 @@ class PostUploadView extends events.EventTarget {
uploadable.safety = safetyNode.value;
}
- const anonymousNode = rowNode.querySelector(
- ".anonymous input:checked"
- );
- if (anonymousNode) {
- uploadable.anonymous = true;
+ let anonymous = this._uploadAllAnonymous?.checked;
+ if (!anonymous) {
+ anonymous = rowNode.querySelector(".anonymous input:checked");
}
+ uploadable.anonymous = anonymous;
uploadable.tags = [];
if (this._commonTagsInputNode) {
@@ -460,6 +459,10 @@ class PostUploadView extends events.EventTarget {
);
}
+ get _uploadAllAnonymous() {
+ return this._hostNode.querySelector("form [name=upload-all-anonymous]");
+ }
+
get _submitButtonNode() {
return this._hostNode.querySelector("form [type=submit]");
}