1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-05 00:43:53 +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 () { 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; path = this.dirent_path;
Common.ajaxGet({ Common.ajaxGet({
'get_url': Common.getUrl({ 'get_url': Common.getUrl({
name: 'get_dir_user_share_items', name: 'dir_shared_items',
repo_id: repo_id repo_id: repo_id
}), }),
'data': {'p': path}, 'data': {
'p': path,
'share_type': 'user'
},
'after_op_success': function (data) { 'after_op_success': function (data) {
$(data).each(function(index, item) { $(data).each(function(index, item) {
var new_item = new FolderShareItemView({ var new_item = new FolderShareItemView({
'repo_id': repo_id, 'repo_id': repo_id,
'path': path, '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 'for_user': true
}) }
}); });
$add_item.after(new_item.el); $add_item.after(new_item.el);
}); });
@@ -516,18 +522,24 @@ define([
path = this.dirent_path; path = this.dirent_path;
Common.ajaxGet({ Common.ajaxGet({
'get_url': Common.getUrl({ 'get_url': Common.getUrl({
name: 'get_dir_group_share_items', name: 'dir_shared_items',
repo_id: repo_id repo_id: repo_id
}), }),
'data': {'p': path}, 'data': {
'p': path,
'share_type': 'group'
},
'after_op_success': function (data) { 'after_op_success': function (data) {
$(data).each(function(index, item) { $(data).each(function(index, item) {
var new_item = new FolderShareItemView({ var new_item = new FolderShareItemView({
'repo_id': repo_id, 'repo_id': repo_id,
'path': path, '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 'for_user': false
}) }
}); });
$add_item.after(new_item.el); $add_item.after(new_item.el);
}); });
@@ -539,8 +551,7 @@ define([
}, },
dirUserShare: function () { dirUserShare: function () {
var form = this.$('#add-dir-user-share-item'), var form = this.$('#add-dir-user-share-item');
form_id = form.attr('id');
var emails_input = $('[name="emails"]', form), var emails_input = $('[name="emails"]', form),
emails = emails_input.val(); // string emails = emails_input.val(); // string
@@ -552,40 +563,46 @@ define([
var repo_id = this.repo_id, var repo_id = this.repo_id,
path = this.dirent_path; path = this.dirent_path;
var perm = $('[name="permission"]', form).val(); var perm = $('[name="permission"]', form).val();
var post_data = {
'repo_id': repo_id, $.ajax({
'path': path, url: Common.getUrl({
'emails': emails, name: 'dir_shared_items',
'perm': perm repo_id: repo_id
}; }) + '?p=' + encodeURIComponent(path),
var post_url = Common.getUrl({name: 'private_share_dir'}); // TODO: modify url dataType: 'json',
var after_op_success = function(data) { method: 'PUT',
$(data).each(function(index, item) { 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({ var new_item = new FolderShareItemView({
'repo_id': repo_id, 'repo_id': repo_id,
'path': path, 'path': path,
'item_data': $.extend(item, { 'item_data': {
'for_user': false "user": item.user_info.name,
}) "user_name": item.user_info.nickname,
"perm": item.permission,
'for_user': true
}
}); });
$add_item.after(new_item.el); $add_item.after(new_item.el);
}); });
emails_input.select2("val", ""); emails_input.select2("val", "");
}; },
error: function(xhr) {
Common.ajaxPost({ // todo
'form': form, }
'post_url': post_url,
'post_data': post_data,
'after_op_success': after_op_success,
'form_id': form_id
}); });
return false;
}, },
dirGroupShare: function () { dirGroupShare: function () {
var form = this.$('#add-dir-group-share-item'), var form = this.$('#add-dir-group-share-item');
form_id = form.attr('id');
var groups_input = $('[name="groups"]', form), var groups_input = $('[name="groups"]', form),
groups = groups_input.val(); // null or [group.id] groups = groups_input.val(); // null or [group.id]
@@ -598,35 +615,42 @@ define([
var repo_id = this.repo_id, var repo_id = this.repo_id,
path = this.dirent_path; path = this.dirent_path;
var perm = $('[name="permission"]', form).val(); var perm = $('[name="permission"]', form).val();
var post_data = {
'repo_id': repo_id, $.ajax({
'path': path, url: Common.getUrl({
'groups': groups.join(','), name: 'dir_shared_items',
'perm': perm repo_id: repo_id
}; }) + '?p=' + encodeURIComponent(path),
var post_url = Common.getUrl({name: 'private_share_dir'}); // TODO: modify url dataType: 'json',
var after_op_success = function(data) { method: 'PUT',
$(data).each(function(index, item) { 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({ var new_item = new FolderShareItemView({
'repo_id': repo_id, 'repo_id': repo_id,
'path': path, '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 'for_user': false
}) }
}); });
$add_item.after(new_item.el); $add_item.after(new_item.el);
}); });
groups_input.select2("val", ""); groups_input.select2("val", "");
}; },
error: function(xhr) {
Common.ajaxPost({ // todo
'form': form, }
'post_url': post_url,
'post_data': post_data,
'after_op_success': after_op_success,
'form_id': form_id
}); });
return false;
} }
}); });

View File

@@ -95,7 +95,7 @@ define([
case 'send_shared_upload_link': return siteRoot + 'share/upload_link/send/'; case 'send_shared_upload_link': return siteRoot + 'share/upload_link/send/';
case 'delete_shared_upload_link': return siteRoot + 'share/ajax/upload_link/remove/'; 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 '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 'private_share_file': return siteRoot + 'share/ajax/private-share-file/';
case 'get_popup_notices': return siteRoot + 'ajax/get_popup_notices/'; case 'get_popup_notices': return siteRoot + 'ajax/get_popup_notices/';
case 'set_notices_seen': return siteRoot + 'ajax/set_notices_seen/'; 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 'shared_repos': return siteRoot + 'api2/shared-repos/' + options.repo_id + '/';
case 'search_user': return siteRoot + 'api2/search-user/'; case 'search_user': return siteRoot + 'api2/search-user/';
case 'share_permission_admin': return siteRoot + 'share/permission_admin/'; 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_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_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/';
} }
}, },