diff options
Diffstat (limited to 'app/js')
-rw-r--r-- | app/js/app.js | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/app/js/app.js b/app/js/app.js index 823e4f7..c0ed616 100644 --- a/app/js/app.js +++ b/app/js/app.js | |||
@@ -79,9 +79,12 @@ function up() { | |||
79 | } | 79 | } |
80 | 80 | ||
81 | function upload() { | 81 | function upload() { |
82 | $(app.$els.upload).change(function () { | 82 | $(app.$els.upload).on('change', function () { |
83 | app.busy = true; | 83 | app.busy = true; |
84 | 84 | ||
85 | // detach event handler | ||
86 | $(app.$els.upload).off('change'); | ||
87 | |||
85 | var file = app.$els.upload.files[0]; | 88 | var file = app.$els.upload.files[0]; |
86 | var path = encode(sanitize(app.path + '/' + file.name)); | 89 | var path = encode(sanitize(app.path + '/' + file.name)); |
87 | 90 | ||
@@ -123,6 +126,29 @@ function del(entry) { | |||
123 | }); | 126 | }); |
124 | } | 127 | } |
125 | 128 | ||
129 | function createDirectoryAsk() { | ||
130 | $('#modalcreateDirectory').modal('show'); | ||
131 | app.createDirectoryData = ''; | ||
132 | } | ||
133 | |||
134 | function createDirectory(name) { | ||
135 | app.busy = true; | ||
136 | |||
137 | var path = encode(sanitize(app.path + '/' + name)); | ||
138 | |||
139 | superagent.put('/api/files' + path).query({ username: app.session.username, password: app.session.password, directory: true }).end(function (error, result) { | ||
140 | app.busy = false; | ||
141 | |||
142 | if (error) return console.error(error); | ||
143 | if (result.statusCode !== 201) return console.error('Error creating directory: ', result.statusCode); | ||
144 | |||
145 | app.createDirectoryData = ''; | ||
146 | refresh(); | ||
147 | |||
148 | $('#modalcreateDirectory').modal('hide'); | ||
149 | }); | ||
150 | } | ||
151 | |||
126 | var app = new Vue({ | 152 | var app = new Vue({ |
127 | el: '#app', | 153 | el: '#app', |
128 | data: { | 154 | data: { |
@@ -134,6 +160,7 @@ var app = new Vue({ | |||
134 | }, | 160 | }, |
135 | loginData: {}, | 161 | loginData: {}, |
136 | deleteData: {}, | 162 | deleteData: {}, |
163 | createDirectoryData: '', | ||
137 | entries: [] | 164 | entries: [] |
138 | }, | 165 | }, |
139 | methods: { | 166 | methods: { |
@@ -144,7 +171,9 @@ var app = new Vue({ | |||
144 | up: up, | 171 | up: up, |
145 | upload: upload, | 172 | upload: upload, |
146 | delAsk: delAsk, | 173 | delAsk: delAsk, |
147 | del: del | 174 | del: del, |
175 | createDirectoryAsk: createDirectoryAsk, | ||
176 | createDirectory: createDirectory | ||
148 | } | 177 | } |
149 | }); | 178 | }); |
150 | 179 | ||