summaryrefslogtreecommitdiff
path: root/public/assets/js/drag.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js/drag.js')
-rw-r--r--public/assets/js/drag.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/public/assets/js/drag.js b/public/assets/js/drag.js
new file mode 100644
index 0000000..b73c459
--- /dev/null
+++ b/public/assets/js/drag.js
@@ -0,0 +1,61 @@
+var DragView = UploadView.extend({
+
+ el: "body",
+
+ uploadAction: "/upload",
+
+ selfDrag: false,
+
+ events: {
+ 'dragover': 'dragover',
+ 'dragstart': 'dragstart',
+ 'drop': 'handleDrop',
+ },
+
+ drop: function(){
+ $("#droparea").hide()
+ $("#loading").show()
+ },
+
+ dragover: function(e){
+ e.stopPropagation()
+ e.preventDefault()
+ if (this.selfDrag) {
+ $("#droparea").hide()
+ }
+ else {
+ $("#droparea").show()
+ }
+ },
+
+ // set if we're dragging an image from the page, versus from another window
+ dragstart: function(e){
+ this.selfDrag = true
+ },
+
+ handleDrop: function(e){
+ var base = this
+ e.stopPropagation()
+ e.preventDefault()
+
+ e = e.originalEvent
+
+ if (e.dataTransfer && ! this.selfDrag) {
+ if (e.dataTransfer.files.length) {
+ this.handleFileSelect(e)
+ }
+ }
+ else {
+ this.handleFileSelect(e)
+ }
+ this.selfDrag = false
+ this.drop()
+ },
+
+ add: function(data){
+ $("#loading").hide()
+ app.view.display(data)
+ history.pushState(data, document.title, "/p/" + data.id)
+ },
+
+})