function upload() {
$(app.$els.upload).on('change', function () {
- app.busy = true;
// detach event handler
$(app.$els.upload).off('change');
- var length = app.$els.upload.files.length;
- var done = 0;
+ app.uploadStatus = {
+ busy: true,
+ count: app.$els.upload.files.length,
+ done: 0,
+ percentDone: 0
+ };
function uploadFile(file) {
var path = encode(sanitize(app.path + '/' + file.name));
var formData = new FormData();
formData.append('file', file);
- superagent.put('/api/files' + path).query({ username: app.session.username, password: app.session.password }).send(formData).end(function (error, result) {
+ superagent.post('/api/files' + path).query({ username: app.session.username, password: app.session.password }).send(formData).end(function (error, result) {
if (result && result.statusCode === 401) return logout();
if (result && result.statusCode !== 201) console.error('Error uploading file: ', result.statusCode);
if (error) console.error(error);
- ++done;
+ app.uploadStatus.done += 1;
+ app.uploadStatus.percentDone = Math.round(app.uploadStatus.done / app.uploadStatus.count * 100);
+
+ if (app.uploadStatus.done >= app.uploadStatus.count) {
+ app.uploadStatus = {
+ busy: false,
+ count: 0,
+ done: 0,
+ percentDone: 100
+ };
- if (done >= length) {
- app.busy = false;
refresh();
}
});
}
- for(var i = 0; i < length; i++) {
+ for(var i = 0; i < app.uploadStatus.count; ++i) {
uploadFile(app.$els.upload.files[i]);
}
});
});
}
+function renameAsk(entry) {
+ app.renameData.entry = entry;
+ app.renameData.error = null;
+ app.renameData.newFilePath = entry.filePath;
+
+ $('#modalRename').modal('show');
+}
+
+function rename(data) {
+ app.busy = true;
+
+ var path = encode(sanitize(app.path + '/' + data.entry.filePath));
+ var newFilePath = sanitize(app.path + '/' + data.newFilePath);
+
+ superagent.put('/api/files' + path).query({ username: app.session.username, password: app.session.password }).send({ newFilePath: newFilePath }).end(function (error, result) {
+ app.busy = false;
+
+ if (result && result.statusCode === 401) return logout();
+ if (result && result.statusCode !== 200) return console.error('Error renaming file: ', result.statusCode);
+ if (error) return console.error(error);
+
+ refresh();
+
+ $('#modalRename').modal('hide');
+ });
+}
+
function createDirectoryAsk() {
$('#modalcreateDirectory').modal('show');
app.createDirectoryData = '';
var path = encode(sanitize(app.path + '/' + name));
- superagent.put('/api/files' + path).query({ username: app.session.username, password: app.session.password, directory: true }).end(function (error, result) {
+ superagent.post('/api/files' + path).query({ username: app.session.username, password: app.session.password, directory: true }).end(function (error, result) {
app.busy = false;
if (result && result.statusCode === 401) return logout();
el: '#app',
data: {
busy: true,
+ uploadStatus: {
+ busy: false,
+ count: 0,
+ done: 0,
+ percentDone: 50
+ },
path: '/',
pathParts: [],
session: {
},
loginData: {},
deleteData: {},
+ renameData: {
+ entry: {},
+ error: null,
+ newFilePath: ''
+ },
createDirectoryData: '',
createDirectoryError: null,
entries: []
upload: upload,
delAsk: delAsk,
del: del,
+ renameAsk: renameAsk,
+ rename: rename,
createDirectoryAsk: createDirectoryAsk,
createDirectory: createDirectory
}