mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-14 14:21:23 +00:00
[group repo list, dir view] modification after 'enable users to share personal libraries to departments'
This commit is contained in:
@@ -257,14 +257,15 @@
|
||||
<td><span class="repo-name-span"><a href="#group/<%= group_id %>/lib/<%= id %>" class="normal"><%- name %></a></span></td>
|
||||
<td class="repo-op-td">
|
||||
<% if (app.pageOptions.is_pro) { %>
|
||||
<% if (parent_group_id == 0) { %>
|
||||
<% if (!is_group_owned_repo) { %>
|
||||
<% if (is_repo_owner || is_admin) { %>
|
||||
<a href="#" class="sf2-icon-share sf2-x repo-share-btn op-icon vh" title="{% trans "Share" %}" aria-label="{% trans "Share" %}"></a>
|
||||
<% } %>
|
||||
<% if (is_staff || is_repo_owner || is_admin) { %>
|
||||
<a href="#" class="sf2-icon-x3 sf2-x cancel-share op-icon vh" title="{% trans "Unshare" %}" aria-label="{% trans "Unshare" %}"></a>
|
||||
<% } %>
|
||||
<% } else { %> {# It is an address book group #}
|
||||
|
||||
<% } else { %> {# for group owned repo #}
|
||||
<% if (is_staff) { %>
|
||||
<% if (owner == group_id + '@seafile_group') { %> {# this repo belongs to the current group #}
|
||||
<a href="#" class="sf2-icon-share sf2-x repo-share-btn op-icon vh" title="{% trans "Share" %}" aria-label="{% trans "Share" %}"></a>
|
||||
@@ -284,6 +285,7 @@
|
||||
<% } %>
|
||||
<% } %>
|
||||
<% } %>
|
||||
|
||||
<% } else { %>
|
||||
<% if (is_repo_owner) { %>
|
||||
<a href="#" class="sf2-icon-share sf2-x repo-share-btn op-icon vh" title="{% trans "Share" %}" aria-label="{% trans "Share" %}"></a>
|
||||
@@ -315,7 +317,7 @@
|
||||
</td>
|
||||
<td class="repo-op-td">
|
||||
<% if (app.pageOptions.is_pro) { %>
|
||||
<% if (parent_group_id == 0) { %>
|
||||
<% if (!is_group_owned_repo) { %>
|
||||
<div class="sf-dropdown sf-dropdown-inline">
|
||||
<a href="#" class="sf2-icon-caret-down more-op-icon op-icon sf-dropdown-toggle" title="{% trans "More Operations" %}" aria-label="{% trans "More Operations" %}"></a>
|
||||
<ul class="hidden-op repo-hidden-op hide sf-dropdown-menu">
|
||||
@@ -344,7 +346,12 @@
|
||||
</ul>
|
||||
</div>
|
||||
<% } else { %>
|
||||
<a href="#" class="sf2-icon-x3 sf2-x cancel-share op-icon" title="{% trans "Unshare" %}" aria-label="{% trans "Unshare" %}"></a>
|
||||
<div class="sf-dropdown sf-dropdown-inline">
|
||||
<a href="#" class="sf2-icon-caret-down more-op-icon op-icon sf-dropdown-toggle" title="{% trans "More Operations" %}" aria-label="{% trans "More Operations" %}"></a>
|
||||
<ul class="hidden-op repo-hidden-op hide sf-dropdown-menu">
|
||||
<li><a href="#" class="op cancel-share">{% trans "Unshare" %}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<% } %>
|
||||
<% } %>
|
||||
<% } %>
|
||||
|
@@ -328,6 +328,7 @@ def list_lib_dir(request, repo_id):
|
||||
else:
|
||||
repo_owner = seafile_api.get_repo_owner(repo.id)
|
||||
|
||||
result["repo_owner"] = repo_owner
|
||||
result["is_repo_owner"] = False
|
||||
result["has_been_shared_out"] = False
|
||||
result["is_admin"] = is_repo_admin(username, repo_id)
|
||||
|
@@ -22,6 +22,7 @@ define([
|
||||
this.user_perm = data.user_perm;
|
||||
this.no_quota = data.no_quota;
|
||||
this.encrypted = data.encrypted;
|
||||
this.repo_owner = data.repo_owner;
|
||||
this.is_repo_owner = data.is_repo_owner;
|
||||
this.is_virtual = data.is_virtual;
|
||||
this.has_been_shared_out = data.has_been_shared_out;
|
||||
|
@@ -455,9 +455,12 @@ define([
|
||||
}
|
||||
|
||||
_this.dir.user_can_set_folder_perm = false;
|
||||
_this.is_address_book_group_admin = false;
|
||||
_this.is_address_book_group_admin = false; // department admin
|
||||
_this.is_group_owned_repo = false;
|
||||
if (_this.contextOptions &&
|
||||
_this.contextOptions.group_id) { // the repo is in a group
|
||||
_this.contextOptions.group_id && // the repo is in a group
|
||||
dir.repo_owner.indexOf('@seafile_group') != -1) { // It's a group owned repo
|
||||
_this.is_group_owned_repo = true;
|
||||
_this.getGroupInfo();
|
||||
} else {
|
||||
_this.reset();
|
||||
@@ -483,22 +486,24 @@ define([
|
||||
});
|
||||
},
|
||||
|
||||
// get department(group) info
|
||||
getGroupInfo: function() {
|
||||
var _this = this;
|
||||
|
||||
var repo_owner = this.dir.repo_owner; // e.g: 4@seafile_group
|
||||
var group_id = repo_owner.substring(0, repo_owner.indexOf('@'));
|
||||
$.ajax({
|
||||
url: Common.getUrl({
|
||||
'name': 'group',
|
||||
'group_id': this.contextOptions.group_id
|
||||
'group_id': group_id
|
||||
}),
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
if (data.parent_group_id != 0 && // address book group
|
||||
$.inArray(app.pageOptions.username, data.admins) != -1) { // user is group admin
|
||||
if ($.inArray(app.pageOptions.username, data.admins) != -1) { // user is group admin
|
||||
_this.dir.user_can_set_folder_perm = true;
|
||||
|
||||
_this.is_address_book_group_admin = true;
|
||||
_this.parent_group_id = data.parent_group_id;
|
||||
}
|
||||
_this.reset();
|
||||
},
|
||||
@@ -868,7 +873,7 @@ define([
|
||||
if (this.is_address_book_group_admin) {
|
||||
$.extend(options, {
|
||||
is_address_book_group_admin: true,
|
||||
parent_group_id: this.parent_group_id
|
||||
is_group_owned_repo: this.is_group_owned_repo
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -219,7 +219,7 @@ define([
|
||||
if (this.dirView.is_address_book_group_admin) {
|
||||
$.extend(options, {
|
||||
is_address_book_group_admin: true,
|
||||
parent_group_id: this.dirView.parent_group_id
|
||||
is_group_owned_repo: this.dirView.is_group_owned_repo
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -388,7 +388,7 @@ define([
|
||||
if (this.dirView.is_address_book_group_admin) {
|
||||
$.extend(options, {
|
||||
is_address_book_group_admin: true,
|
||||
parent_group_id: this.dirView.parent_group_id
|
||||
is_group_owned_repo: this.dirView.is_group_owned_repo
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -24,7 +24,7 @@ define([
|
||||
this.show_admin = false;
|
||||
if (app.pageOptions.is_pro &&
|
||||
this.path == '/' &&
|
||||
!this.item_data.parent_group_id) { // not for group owned repo
|
||||
!this.item_data.is_group_owned_repo) { // not for group owned repo
|
||||
this.show_admin = true;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ define([
|
||||
var perm = $(e.currentTarget).val();
|
||||
var item_data = this.item_data;
|
||||
var url, method, data;
|
||||
if (item_data.parent_group_id) { // group owned repo
|
||||
if (item_data.is_group_owned_repo) { // group owned repo
|
||||
if (item_data.for_user) {
|
||||
url = Common.getUrl({
|
||||
name: 'group_owned_repo_user_share',
|
||||
@@ -140,7 +140,7 @@ define([
|
||||
var item_data = this.item_data;
|
||||
var url, data = {};
|
||||
|
||||
if (item_data.parent_group_id) { // group owned repo
|
||||
if (item_data.is_group_owned_repo) { // group owned repo
|
||||
if (item_data.for_user) {
|
||||
url = Common.getUrl({
|
||||
name: 'group_owned_repo_user_share',
|
||||
|
@@ -35,7 +35,6 @@ define([
|
||||
return Common.compareTwoWord(a.name, b.name);
|
||||
});
|
||||
var group_id = this.model.get('id'),
|
||||
parent_group_id = this.model.get('parent_group_id'),
|
||||
is_staff = $.inArray(app.pageOptions.username, this.model.get('admins')) != -1 ? true : false,
|
||||
repoDetailsView = this.repoDetailsView,
|
||||
$listContainer = this.$('tbody');
|
||||
@@ -45,7 +44,6 @@ define([
|
||||
var view = new GroupRepoView({
|
||||
model: new GroupRepo(item, {collection: groupRepos}),
|
||||
group_id: group_id,
|
||||
parent_group_id: parent_group_id,
|
||||
is_staff: is_staff,
|
||||
repoDetailsView: repoDetailsView,
|
||||
show_repo_owner: false // don't show 'Owner'
|
||||
|
@@ -35,7 +35,6 @@ define([
|
||||
HLItemView.prototype.initialize.call(this);
|
||||
|
||||
this.group_id = options.group_id;
|
||||
this.parent_group_id = options.parent_group_id;
|
||||
this.is_staff = options.is_staff;
|
||||
this.show_repo_owner = options.show_repo_owner;
|
||||
this.repoDetailsView = options.repoDetailsView;
|
||||
@@ -204,7 +203,7 @@ define([
|
||||
|
||||
clickItem: function(e) {
|
||||
var target = e.target || event.srcElement;
|
||||
if (this.parent_group_id != 0 && // only for address book group repo
|
||||
if (this.model.get('owner') == this.group_id + '@seafile_group' &&
|
||||
this.$('td').is(target) &&
|
||||
this.repoDetailsView.$el.is(':visible')) {
|
||||
this.viewDetails();
|
||||
@@ -216,7 +215,8 @@ define([
|
||||
var icon_size = Common.isHiDPI() ? 48 : 24;
|
||||
var icon_url = this.model.getIconUrl(icon_size);
|
||||
var tmpl = $(window).width() >= 768 ? this.template : this.mobileTemplate;
|
||||
var owner_name;
|
||||
var owner_name,
|
||||
is_group_owned_repo = false;
|
||||
if (obj.owner.indexOf('@seafile_group') == -1) {
|
||||
// 'owner_nickname' for '#group/id/'
|
||||
// 'owner_name' for '#groups'
|
||||
@@ -225,10 +225,11 @@ define([
|
||||
// owner: "18@seafile_group"
|
||||
// It's a group owned repo
|
||||
owner_name = obj.group_name;
|
||||
is_group_owned_repo = true;
|
||||
}
|
||||
$.extend(obj, {
|
||||
group_id: this.group_id,
|
||||
parent_group_id: this.parent_group_id,
|
||||
is_group_owned_repo: is_group_owned_repo,
|
||||
is_staff: this.is_staff,
|
||||
// for '#groups' (no 'share_from_me')
|
||||
is_repo_owner: app.pageOptions.username == this.model.get('owner'),
|
||||
@@ -265,11 +266,12 @@ define([
|
||||
if (app.pageOptions.is_pro) {
|
||||
options.is_admin = this.model.get('is_admin'); // 'is_admin': repo is shared to the group with 'admin' perm
|
||||
|
||||
// private share group owned repo
|
||||
if (this.parent_group_id && this.is_staff) {
|
||||
// private share group owned repo (which belongs to this group)
|
||||
if (this.is_staff &&
|
||||
this.model.get('owner') == this.group_id + '@seafile_group') {
|
||||
$.extend(options, {
|
||||
'is_address_book_group_admin': true,
|
||||
'parent_group_id': this.parent_group_id
|
||||
'is_group_owned_repo': true
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -67,7 +67,6 @@ define([
|
||||
var view = new GroupRepoView({
|
||||
model: repo,
|
||||
group_id: this.group_id,
|
||||
parent_group_id: this.group.parent_group_id,
|
||||
show_repo_owner: true,
|
||||
repoDetailsView: this.repoDetailsView,
|
||||
is_staff: this.repos.is_staff
|
||||
|
@@ -21,7 +21,7 @@ define([
|
||||
|
||||
// for group owned repo
|
||||
this.is_address_book_group_admin = options.is_address_book_group_admin;
|
||||
this.parent_group_id = options.parent_group_id;
|
||||
this.is_group_owned_repo = options.is_group_owned_repo;
|
||||
|
||||
this.is_virtual = options.is_virtual;
|
||||
this.user_perm = options.user_perm;
|
||||
@@ -82,7 +82,7 @@ define([
|
||||
var show_admin_perm_option = false;
|
||||
if (app.pageOptions.is_pro &&
|
||||
this.dirent_path == '/' && // only for repo
|
||||
!this.parent_group_id) { // not for group owned repo
|
||||
!this.is_group_owned_repo) {
|
||||
show_admin_perm_option = true;
|
||||
}
|
||||
|
||||
@@ -575,13 +575,13 @@ define([
|
||||
var item_data = {
|
||||
'for_user': true
|
||||
};
|
||||
if (this.parent_group_id) { // group owned repo
|
||||
if (this.is_group_owned_repo) {
|
||||
// [{permission: "rw", user_name: "llj", user_email: "llj@1.com", user_contact_email: "llj@1.com"}]
|
||||
$.extend(item_data, {
|
||||
"user_email": item.user_email,
|
||||
"user_name": item.user_name,
|
||||
"permission": item.permission,
|
||||
'parent_group_id': this.parent_group_id
|
||||
'is_group_owned_repo': this.is_group_owned_repo
|
||||
});
|
||||
} else {
|
||||
$.extend(item_data, {
|
||||
@@ -606,7 +606,7 @@ define([
|
||||
var repo_id = this.repo_id,
|
||||
path = this.dirent_path;
|
||||
var url, data;
|
||||
if (this.parent_group_id) {
|
||||
if (this.is_group_owned_repo) {
|
||||
url = Common.getUrl({
|
||||
name: 'group_owned_repo_user_share',
|
||||
repo_id: repo_id
|
||||
@@ -658,12 +658,12 @@ define([
|
||||
var item_data = {
|
||||
'for_user': false
|
||||
};
|
||||
if (this.parent_group_id) { // address book group
|
||||
if (this.is_group_owned_repo) {
|
||||
$.extend(item_data, {
|
||||
"group_id": item.group_id,
|
||||
"group_name": item.group_name,
|
||||
"permission": item.permission,
|
||||
"parent_group_id": this.parent_group_id
|
||||
"is_group_owned_repo": this.is_group_owned_repo
|
||||
});
|
||||
} else {
|
||||
$.extend(item_data, {
|
||||
@@ -749,7 +749,7 @@ define([
|
||||
var repo_id = this.repo_id,
|
||||
path = this.dirent_path;
|
||||
|
||||
if (this.parent_group_id) { // group owned repo
|
||||
if (this.is_group_owned_repo) {
|
||||
url = Common.getUrl({
|
||||
name: 'group_owned_repo_group_share',
|
||||
repo_id: repo_id
|
||||
@@ -796,7 +796,7 @@ define([
|
||||
});
|
||||
$table.removeClass('hide');
|
||||
};
|
||||
if (_this.parent_group_id) { // group owned repo
|
||||
if (_this.is_group_owned_repo) {
|
||||
_this.prepareAvailableGroupsForGroupOwnedRepo({'callback': prepareGroupsSelector});
|
||||
} else {
|
||||
_this.prepareAvailableGroups({'callback': prepareGroupsSelector});
|
||||
@@ -837,7 +837,7 @@ define([
|
||||
var $submitBtn = $('[type="submit"]', $form);
|
||||
|
||||
var url, method, data;
|
||||
if (this.parent_group_id) { // group owned repo
|
||||
if (this.is_group_owned_repo) {
|
||||
url = Common.getUrl({
|
||||
name: 'group_owned_repo_user_share',
|
||||
repo_id: repo_id
|
||||
@@ -925,7 +925,7 @@ define([
|
||||
var $submitBtn = $('[type="submit"]', $form);
|
||||
|
||||
var url, method, data;
|
||||
if (this.parent_group_id) {
|
||||
if (this.is_group_owned_repo) {
|
||||
url = Common.getUrl({
|
||||
name: 'group_owned_repo_group_share',
|
||||
repo_id: repo_id
|
||||
|
Reference in New Issue
Block a user