mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-17 15:53:28 +00:00
Update dirent del function
This commit is contained in:
@@ -1,8 +1,9 @@
|
|||||||
define([
|
define([
|
||||||
|
'jquery',
|
||||||
'underscore',
|
'underscore',
|
||||||
'backbone',
|
'backbone',
|
||||||
'common'
|
'common'
|
||||||
], function(_, Backbone, Common) {
|
], function($, _, Backbone, Common) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var Dirent = Backbone.Model.extend({
|
var Dirent = Backbone.Model.extend({
|
||||||
@@ -41,6 +42,37 @@ define([
|
|||||||
return app.config.siteRoot + "lib/" + dir.repo_id
|
return app.config.siteRoot + "lib/" + dir.repo_id
|
||||||
+ "/file" + Common.encodePath(dirent_path) + "?dl=1";
|
+ "/file" + Common.encodePath(dirent_path) + "?dl=1";
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// We can't use Backbone.sync() here because the URL for a dirent
|
||||||
|
// is not a standard RESTful one
|
||||||
|
deleteFromServer: function(options) {
|
||||||
|
var dir = this.collection;
|
||||||
|
var path = this.getPath();
|
||||||
|
var model = this;
|
||||||
|
|
||||||
|
var opts = {
|
||||||
|
repo_id: dir.repo_id,
|
||||||
|
name: this.get('is_dir') ? 'del_dir' : 'del_file'
|
||||||
|
};
|
||||||
|
$.ajax({
|
||||||
|
url: Common.getUrl(opts) + '?p=' + encodeURIComponent(path),
|
||||||
|
type: 'DELETE',
|
||||||
|
dataType: 'json',
|
||||||
|
beforeSend: Common.prepareCSRFToken,
|
||||||
|
success: function(data) {
|
||||||
|
// We don't understand how the event actually work in Backbone
|
||||||
|
// It is safer to call dir.remove() directly.
|
||||||
|
dir.remove(model);
|
||||||
|
// this.trigger('destroy');
|
||||||
|
if (options.success)
|
||||||
|
options.success(data);
|
||||||
|
},
|
||||||
|
error: function(xhr) {
|
||||||
|
if (options.error)
|
||||||
|
options.error(xhr);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@@ -133,8 +133,27 @@ define([
|
|||||||
});
|
});
|
||||||
|
|
||||||
// TODO: bind operations here
|
// TODO: bind operations here
|
||||||
|
|
||||||
|
this.$('.grid-item-op .delete').on('click', { view: this }, this.del);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
|
del: function(event) {
|
||||||
|
var _this = event.data.view;
|
||||||
|
var dirent_name = _this.model.get('obj_name');
|
||||||
|
_this.model.deleteFromServer({
|
||||||
|
success: function(data) {
|
||||||
|
var msg = gettext("Successfully deleted %(name)s")
|
||||||
|
.replace('%(name)s', Common.HTMLescape(dirent_name));
|
||||||
|
Common.feedback(msg, 'success');
|
||||||
|
},
|
||||||
|
error: function(xhr) {
|
||||||
|
Common.ajaxErrorHandler(xhr);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -183,20 +183,8 @@ define([
|
|||||||
|
|
||||||
del: function() {
|
del: function() {
|
||||||
var dirent_name = this.model.get('obj_name');
|
var dirent_name = this.model.get('obj_name');
|
||||||
var dir = this.dir;
|
this.model.deleteFromServer({
|
||||||
var options = {
|
|
||||||
repo_id: dir.repo_id,
|
|
||||||
name: this.model.get('is_dir') ? 'del_dir' : 'del_file'
|
|
||||||
};
|
|
||||||
var model = this.model;
|
|
||||||
$.ajax({
|
|
||||||
url: Common.getUrl(options) + '?parent_dir=' + encodeURIComponent(dir.path)
|
|
||||||
+ '&name=' + encodeURIComponent(dirent_name),
|
|
||||||
type: 'POST',
|
|
||||||
dataType: 'json',
|
|
||||||
beforeSend: Common.prepareCSRFToken,
|
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
dir.remove(model);
|
|
||||||
var msg = gettext("Successfully deleted %(name)s")
|
var msg = gettext("Successfully deleted %(name)s")
|
||||||
.replace('%(name)s', Common.HTMLescape(dirent_name));
|
.replace('%(name)s', Common.HTMLescape(dirent_name));
|
||||||
Common.feedback(msg, 'success');
|
Common.feedback(msg, 'success');
|
||||||
|
@@ -68,8 +68,8 @@ define([
|
|||||||
case 'list_lib_dir': return siteRoot + 'ajax/lib/' + options.repo_id + '/dir/';
|
case 'list_lib_dir': return siteRoot + 'ajax/lib/' + options.repo_id + '/dir/';
|
||||||
case 'star_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/star/';
|
case 'star_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/star/';
|
||||||
case 'unstar_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/unstar/';
|
case 'unstar_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/unstar/';
|
||||||
case 'del_dir': return siteRoot + 'ajax/repo/' + options.repo_id + '/dir/delete/';
|
case 'del_dir': return siteRoot + 'api2/repos/' + options.repo_id + '/dir/';
|
||||||
case 'del_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/delete/';
|
case 'del_file': return siteRoot + 'api2/repos/' + options.repo_id + '/file/';
|
||||||
case 'rename_dir': return siteRoot + 'ajax/repo/' + options.repo_id + '/dir/rename/';
|
case 'rename_dir': return siteRoot + 'ajax/repo/' + options.repo_id + '/dir/rename/';
|
||||||
case 'rename_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/rename/';
|
case 'rename_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/rename/';
|
||||||
case 'mv_dir': return siteRoot + 'ajax/repo/' + options.repo_id + '/dir/mv/';
|
case 'mv_dir': return siteRoot + 'ajax/repo/' + options.repo_id + '/dir/mv/';
|
||||||
|
Reference in New Issue
Block a user