1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-03 16:10:26 +00:00

[dir private share] dir shared items: modified 'list/add', add 'delete'

This commit is contained in:
llj
2015-07-01 18:28:14 +08:00
committed by zhengxie
parent beee7a8fa6
commit 0a13dd88bb
3 changed files with 119 additions and 71 deletions

View File

@@ -88,6 +88,29 @@ define([
},
del: function () {
var _this = this;
var item_data = this.item_data;
var url = Common.getUrl({
name: 'dir_shared_items',
repo_id: this.repo_id
}) + '?p=' + encodeURIComponent(this.path);
if (item_data.for_user) {
url += '&share_type=user&username=' + encodeURIComponent(item_data.user);
} else {
url += '&share_type=group&username=' + encodeURIComponent(item_data.group_id);
}
$.ajax({
url: url,
dataType: 'json',
method: 'DELETE',
beforeSend: Common.prepareCSRFToken,
success: function () {
_this.remove();
},
error: {
// TODO
}
});
}
});

View File

@@ -474,18 +474,24 @@ define([
path = this.dirent_path;
Common.ajaxGet({
'get_url': Common.getUrl({
name: 'get_dir_user_share_items',
name: 'dir_shared_items',
repo_id: repo_id
}),
'data': {'p': path},
'data': {
'p': path,
'share_type': 'user'
},
'after_op_success': function (data) {
$(data).each(function(index, item) {
var new_item = new FolderShareItemView({
'repo_id': repo_id,
'path': path,
'item_data':$.extend(item, {
'item_data': {
"user": item.user_info.name,
"user_name": item.user_info.nickname,
"perm": item.permission,
'for_user': true
})
}
});
$add_item.after(new_item.el);
});
@@ -516,18 +522,24 @@ define([
path = this.dirent_path;
Common.ajaxGet({
'get_url': Common.getUrl({
name: 'get_dir_group_share_items',
name: 'dir_shared_items',
repo_id: repo_id
}),
'data': {'p': path},
'data': {
'p': path,
'share_type': 'group'
},
'after_op_success': function (data) {
$(data).each(function(index, item) {
var new_item = new FolderShareItemView({
'repo_id': repo_id,
'path': path,
'item_data': $.extend(item, {
'item_data': {
"group_id": item.group_info.id,
"group_name": item.group_info.name,
"perm": item.permission,
'for_user': false
})
}
});
$add_item.after(new_item.el);
});
@@ -539,8 +551,7 @@ define([
},
dirUserShare: function () {
var form = this.$('#add-dir-user-share-item'),
form_id = form.attr('id');
var form = this.$('#add-dir-user-share-item');
var emails_input = $('[name="emails"]', form),
emails = emails_input.val(); // string
@@ -552,40 +563,46 @@ define([
var repo_id = this.repo_id,
path = this.dirent_path;
var perm = $('[name="permission"]', form).val();
var post_data = {
'repo_id': repo_id,
'path': path,
'emails': emails,
'perm': perm
};
var post_url = Common.getUrl({name: 'private_share_dir'}); // TODO: modify url
var after_op_success = function(data) {
$(data).each(function(index, item) {
$.ajax({
url: Common.getUrl({
name: 'dir_shared_items',
repo_id: repo_id
}) + '?p=' + encodeURIComponent(path),
dataType: 'json',
method: 'PUT',
beforeSend: Common.prepareCSRFToken,
trandition: true,
data: {
'share_type': 'user',
'username': emails.split(','),
'permission': perm
},
success: function(data) {
// todo: those failed to share to
$(data.success).each(function(index, item) {
var new_item = new FolderShareItemView({
'repo_id': repo_id,
'path': path,
'item_data': $.extend(item, {
'for_user': false
})
'item_data': {
"user": item.user_info.name,
"user_name": item.user_info.nickname,
"perm": item.permission,
'for_user': true
}
});
$add_item.after(new_item.el);
});
emails_input.select2("val", "");
};
Common.ajaxPost({
'form': form,
'post_url': post_url,
'post_data': post_data,
'after_op_success': after_op_success,
'form_id': form_id
},
error: function(xhr) {
// todo
}
});
return false;
},
dirGroupShare: function () {
var form = this.$('#add-dir-group-share-item'),
form_id = form.attr('id');
var form = this.$('#add-dir-group-share-item');
var groups_input = $('[name="groups"]', form),
groups = groups_input.val(); // null or [group.id]
@@ -598,35 +615,42 @@ define([
var repo_id = this.repo_id,
path = this.dirent_path;
var perm = $('[name="permission"]', form).val();
var post_data = {
'repo_id': repo_id,
'path': path,
'groups': groups.join(','),
'perm': perm
};
var post_url = Common.getUrl({name: 'private_share_dir'}); // TODO: modify url
var after_op_success = function(data) {
$(data).each(function(index, item) {
$.ajax({
url: Common.getUrl({
name: 'dir_shared_items',
repo_id: repo_id
}) + '?p=' + encodeURIComponent(path),
dataType: 'json',
method: 'PUT',
beforeSend: Common.prepareCSRFToken,
trandition: true,
data: {
'share_type': 'group',
'group_id': groups,
'permission': perm
},
success: function(data) {
// todo: those failed to share to
$(data.success).each(function(index, item) {
var new_item = new FolderShareItemView({
'repo_id': repo_id,
'path': path,
'item_data': $.extend(item, {
'item_data': {
"group_id": item.group_info.id,
"group_name": item.group_info.name,
"perm": item.permission,
'for_user': false
})
}
});
$add_item.after(new_item.el);
});
groups_input.select2("val", "");
};
Common.ajaxPost({
'form': form,
'post_url': post_url,
'post_data': post_data,
'after_op_success': after_op_success,
'form_id': form_id
},
error: function(xhr) {
// todo
}
});
return false;
}
});

View File

@@ -95,7 +95,7 @@ define([
case 'send_shared_upload_link': return siteRoot + 'share/upload_link/send/';
case 'delete_shared_upload_link': return siteRoot + 'share/ajax/upload_link/remove/';
case 'get_share_upload_link': return siteRoot + 'share/ajax/get-upload-link/';
case 'private_share_dir': return siteRoot + 'share/ajax/private-share-dir/';
//case 'private_share_dir': return siteRoot + 'share/ajax/private-share-dir/';
case 'private_share_file': return siteRoot + 'share/ajax/private-share-file/';
case 'get_popup_notices': return siteRoot + 'ajax/get_popup_notices/';
case 'set_notices_seen': return siteRoot + 'ajax/set_notices_seen/';
@@ -114,8 +114,9 @@ define([
case 'shared_repos': return siteRoot + 'api2/shared-repos/' + options.repo_id + '/';
case 'search_user': return siteRoot + 'api2/search-user/';
case 'share_permission_admin': return siteRoot + 'share/permission_admin/';
case 'get_dir_user_share_items': return siteRoot + 'ajax/lib/' + options.repo_id + '/dir-user-share-items/';
case 'get_dir_group_share_items': return siteRoot + 'ajax/lib/' + options.repo_id + '/dir-group-share-items/';
//case 'get_dir_user_share_items': return siteRoot + 'ajax/lib/' + options.repo_id + '/dir-user-share-items/';
//case 'get_dir_group_share_items': return siteRoot + 'ajax/lib/' + options.repo_id + '/dir-group-share-items/';
case 'dir_shared_items': return siteRoot + 'api2/repos/' + options.repo_id + '/dir/shared_items/';
}
},