mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-02 23:48:47 +00:00
[folder perm] modification for group owned repo
This commit is contained in:
@@ -9,11 +9,14 @@ define([
|
||||
|
||||
initialize: function(options) {
|
||||
this.repo_id = options.repo_id;
|
||||
this.is_group_owned_repo = options.is_group_owned_repo;
|
||||
},
|
||||
|
||||
url: function() {
|
||||
return Common.getUrl({
|
||||
name: 'repo_group_folder_perm',
|
||||
name: this.is_group_owned_repo ?
|
||||
'group-owned-library-group-folder-permission' :
|
||||
'repo_group_folder_perm',
|
||||
repo_id: this.repo_id
|
||||
});
|
||||
}
|
||||
|
@@ -9,11 +9,14 @@ define([
|
||||
|
||||
initialize: function(options) {
|
||||
this.repo_id = options.repo_id;
|
||||
this.is_group_owned_repo = options.is_group_owned_repo;
|
||||
},
|
||||
|
||||
url: function() {
|
||||
return Common.getUrl({
|
||||
name: 'repo_user_folder_perm',
|
||||
name: this.is_group_owned_repo ?
|
||||
'group-owned-library-user-folder-permission' :
|
||||
'repo_user_folder_perm',
|
||||
repo_id: this.repo_id
|
||||
});
|
||||
}
|
||||
|
@@ -8,7 +8,8 @@ define([
|
||||
'app/collections/repo-user-folder-perm',
|
||||
'app/collections/repo-group-folder-perm',
|
||||
'app/views/repo-folder-perm-item'
|
||||
], function($, _, Backbone, Common, jQueryUI, FileTree, UserFolderPerm, GroupFolderPerm, ItemView) {
|
||||
], function($, _, Backbone, Common, jQueryUI, FileTree,
|
||||
UserFolderPerm, GroupFolderPerm, ItemView) {
|
||||
'use strict';
|
||||
|
||||
var View = Backbone.View.extend({
|
||||
@@ -19,6 +20,7 @@ define([
|
||||
initialize: function(options) {
|
||||
this.repo_name = options.repo_name;
|
||||
this.repo_id = options.repo_id;
|
||||
this.is_group_owned_repo = options.is_group_owned_repo;
|
||||
|
||||
this.render();
|
||||
this.$('.op-target').css({'max-width':280}); // for long repo name
|
||||
@@ -44,11 +46,17 @@ define([
|
||||
}
|
||||
this.$('.js-tabs').tabs();
|
||||
|
||||
this.userPerm = new UserFolderPerm({repo_id: this.repo_id});
|
||||
this.userPerm = new UserFolderPerm({
|
||||
is_group_owned_repo: this.is_group_owned_repo,
|
||||
repo_id: this.repo_id
|
||||
});
|
||||
this.userPerm.perm_type = 'user';
|
||||
this.$userPermPanel = this.$('#js-repo-user-folder-perm .js-folder-perm-content');
|
||||
|
||||
this.groupPerm = new GroupFolderPerm({repo_id: this.repo_id});
|
||||
this.groupPerm = new GroupFolderPerm({
|
||||
is_group_owned_repo: this.is_group_owned_repo,
|
||||
repo_id: this.repo_id
|
||||
});
|
||||
this.groupPerm.perm_type = 'group';
|
||||
this.$groupPermPanel = this.$('#js-repo-group-folder-perm .js-folder-perm-content');
|
||||
|
||||
@@ -103,10 +111,9 @@ define([
|
||||
}));
|
||||
} else {
|
||||
var groups = [];
|
||||
|
||||
$.ajax({
|
||||
url: Common.getUrl({
|
||||
name: app.pageOptions.enable_share_to_all_groups ? 'shareable_groups' : 'groups'
|
||||
name: 'shareable_groups'
|
||||
}),
|
||||
type: 'GET',
|
||||
dataType: 'json',
|
||||
@@ -162,7 +169,12 @@ define([
|
||||
var for_user = perm_type == 'user' ? true : false;
|
||||
var encoded_path = Common.encodePath(model.get('folder_path'));
|
||||
var view = new ItemView({
|
||||
item_data: $.extend(model.toJSON(), {'for_user': for_user, 'show_folder_path': true, 'encoded_path': encoded_path})
|
||||
item_data: $.extend(model.toJSON(), {
|
||||
'for_user': for_user,
|
||||
'show_folder_path': true,
|
||||
'encoded_path': encoded_path,
|
||||
'is_group_owned_repo': this.is_group_owned_repo
|
||||
})
|
||||
});
|
||||
|
||||
if (options.prepend) {
|
||||
@@ -242,7 +254,12 @@ define([
|
||||
if ($submit.hasClass('js-user-perm-add-submit')) {
|
||||
for_user = true;
|
||||
$panel = this.$userPermPanel;
|
||||
url = Common.getUrl({name: 'repo_user_folder_perm', repo_id: this.repo_id});
|
||||
url = Common.getUrl({
|
||||
name: this.is_group_owned_repo ?
|
||||
'group-owned-library-user-folder-permission' :
|
||||
'repo_user_folder_perm',
|
||||
repo_id: this.repo_id
|
||||
});
|
||||
|
||||
var $email_or_group = $('[name="emails"]', $panel);
|
||||
var email = $email_or_group.val();
|
||||
@@ -256,7 +273,12 @@ define([
|
||||
} else {
|
||||
for_user = false;
|
||||
$panel = this.$groupPermPanel;
|
||||
url = Common.getUrl({name: 'repo_group_folder_perm', repo_id: this.repo_id});
|
||||
url = Common.getUrl({
|
||||
name: this.is_group_owned_repo ?
|
||||
'group-owned-library-group-folder-permission' :
|
||||
'repo_group_folder_perm',
|
||||
repo_id: this.repo_id
|
||||
});
|
||||
|
||||
var $email_or_group = $('[name="groups"]', $panel);
|
||||
var group_val = $email_or_group.val().join(',');
|
||||
@@ -281,6 +303,7 @@ define([
|
||||
var $error = $('.error', $panel);
|
||||
Common.disableButton($submit);
|
||||
|
||||
var is_group_owned_repo = this.is_group_owned_repo;
|
||||
$.ajax({
|
||||
url: url,
|
||||
dataType: 'json',
|
||||
@@ -293,7 +316,12 @@ define([
|
||||
$(data.success).each(function(index, item) {
|
||||
var encoded_path = Common.encodePath(item.folder_path);
|
||||
var perm_item = new ItemView({
|
||||
item_data: $.extend(item, {'for_user': for_user, 'show_folder_path': true, 'encoded_path': encoded_path})
|
||||
item_data: $.extend(item, {
|
||||
'for_user': for_user,
|
||||
'show_folder_path': true,
|
||||
'encoded_path': encoded_path,
|
||||
'is_group_owned_repo': is_group_owned_repo
|
||||
})
|
||||
});
|
||||
$('[name="folder_path"]', $panel).closest('tr').after(perm_item.el);
|
||||
});
|
||||
|
@@ -112,17 +112,11 @@ define([
|
||||
|
||||
// use select2 to 'user' input in 'add user perm'
|
||||
var url;
|
||||
if (this.is_group_owned_repo) {
|
||||
url = Common.getUrl({
|
||||
'name': 'address_book_group_search_members',
|
||||
'group_id': this.group_id
|
||||
});
|
||||
}
|
||||
$('[name="email"]', this.$add_user_perm).select2(
|
||||
Common.contactInputOptionsForSelect2({'url': url}));
|
||||
Common.contactInputOptionsForSelect2());
|
||||
|
||||
// use select2 to 'group' input in 'add group perm'
|
||||
var groups, groups_url;
|
||||
var groups;
|
||||
var prepareGroupSelector = function(groups) {
|
||||
var g_opts = '';
|
||||
for (var i = 0, len = groups.length; i < len; i++) {
|
||||
@@ -134,13 +128,10 @@ define([
|
||||
});
|
||||
};
|
||||
|
||||
if (this.is_group_owned_repo) {
|
||||
groups_url = Common.getUrl({'name': 'address_book_sub_groups', 'group_id': this.group_id});
|
||||
} else {
|
||||
groups_url = Common.getUrl({name: app.pageOptions.enable_share_to_all_groups ? 'shareable_groups' : 'groups'});
|
||||
}
|
||||
$.ajax({
|
||||
url: groups_url,
|
||||
url: Common.getUrl({
|
||||
name: 'shareable_groups'
|
||||
}),
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
|
@@ -4,10 +4,10 @@ define([
|
||||
'backbone',
|
||||
'common',
|
||||
'app/views/share',
|
||||
'app/views/folder-perm',
|
||||
'app/views/dialogs/repo-folder-perm-admin',
|
||||
'app/views/widgets/hl-item-view',
|
||||
'app/views/widgets/dropdown'
|
||||
], function($, _, Backbone, Common, ShareView, FolderPermView,
|
||||
], function($, _, Backbone, Common, ShareView, RepoFolderPerm,
|
||||
HLItemView, DropdownView) {
|
||||
'use strict';
|
||||
|
||||
@@ -70,14 +70,13 @@ define([
|
||||
|
||||
setRepoPerm: function() {
|
||||
var options = {
|
||||
'obj_name': this.model.get('name'),
|
||||
'dir_path': '/',
|
||||
'repo_id': this.model.get('id'),
|
||||
'is_group_owned_repo': true,
|
||||
'group_id': this.group_id
|
||||
'repo_name': this.model.get('name'),
|
||||
'repo_id': this.model.get('id')
|
||||
};
|
||||
new RepoFolderPerm(options);
|
||||
|
||||
this._hideMenu();
|
||||
new FolderPermView(options);
|
||||
return false;
|
||||
},
|
||||
|
||||
|
Reference in New Issue
Block a user