aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/bootstrap/avatar.js
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+github@gmail.com>2021-07-22 16:07:19 +0200
committerJan-Hendrik Willms <tleilax+github@gmail.com>2021-07-22 16:19:12 +0200
commita3da1483a9e689846179159355badfec8073dbec (patch)
tree770dcca6bdf5f6f2a11b0e7fcbbeda6919a3fc52 /resources/assets/javascripts/bootstrap/avatar.js
current code from svn, revision 62608
Diffstat (limited to 'resources/assets/javascripts/bootstrap/avatar.js')
-rw-r--r--resources/assets/javascripts/bootstrap/avatar.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/resources/assets/javascripts/bootstrap/avatar.js b/resources/assets/javascripts/bootstrap/avatar.js
new file mode 100644
index 0000000..a164ca2
--- /dev/null
+++ b/resources/assets/javascripts/bootstrap/avatar.js
@@ -0,0 +1,46 @@
+/*global jQuery, STUDIP */
+STUDIP.domReady(() => {
+ STUDIP.Avatar.init('#avatar-upload');
+
+ // Get file data on drop
+ var dropZone = document.getElementById('avatar-overlay');
+
+ if (dropZone) {
+ dropZone.addEventListener('dragover', function(e) {
+ e.stopPropagation();
+ e.preventDefault();
+ e.target.parentNode.classList.add("dragging");
+ });
+
+ dropZone.addEventListener('dragleave', function(e) {
+ e.stopPropagation();
+ e.preventDefault();
+ e.target.parentNode.classList.remove("dragging");
+ });
+
+ dropZone.addEventListener('drop', function(e) {
+ e.stopPropagation();
+ e.preventDefault();
+ e.target.parentNode.classList.remove("dragging");
+ var files = e.dataTransfer.files;
+ var div = e.target.parentNode;
+ var avatar_dialog = div.getElementsByTagName('a')[0];
+
+ if (!div.getAttribute('accept') || !div.getAttribute('accept').includes(files[0].type)) {
+ alert(div.getAttribute('data-message-unaccepted'));
+ return false;
+ }
+
+ if (!div.getAttribute('data-max-size') || files[0].size > div.getAttribute('data-max-size')) {
+ alert(div.getAttribute('data-message-too-large'));
+ return false;
+ }
+
+ avatar_dialog.click();
+ div.files = files;
+ STUDIP.dialogReady(() => {
+ STUDIP.Avatar.readFile(div);
+ });
+ });
+ }
+});