mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-01 07:01:12 +00:00
add 'updateGroups' for side-nav, and other improvement
This commit is contained in:
@@ -552,11 +552,15 @@
|
|||||||
<a href="#"><span class="sf2-icon-group"></span>{% trans "Groups" %}<span class="toggle-icon icon-caret-down fright"></span></a>
|
<a href="#"><span class="sf2-icon-group"></span>{% trans "Groups" %}<span class="toggle-icon icon-caret-down fright"></span></a>
|
||||||
<ul class="grp-list">
|
<ul class="grp-list">
|
||||||
<li<% if (cur_group_tab == 'groups') { %> class="tab-cur"<% }%>><a href="{% url 'group_list' %}"><span class="sharp">#</span>{% trans "All Groups" %}</a></li>
|
<li<% if (cur_group_tab == 'groups') { %> class="tab-cur"<% }%>><a href="{% url 'group_list' %}"><span class="sharp">#</span>{% trans "All Groups" %}</a></li>
|
||||||
{% for grp in grps %}
|
<% for (var i = 0, len = groups.length; i < len; i++) { %>
|
||||||
<li<% if (cur_group_id == '{{ grp.id }}') { %> class="tab-cur"<% }%>>
|
<% if (cur_group_id == groups[i].id) { %>
|
||||||
<a class="ellipsis" href="{{SITE_ROOT}}#group/{{ grp.id }}/" title="{{ grp.group_name }}"><span class="sharp">#</span>{{ grp.group_name }}</a>
|
<li class="tab-cur">
|
||||||
|
<% } else { %>
|
||||||
|
<li>
|
||||||
|
<% } %>
|
||||||
|
<a class="ellipsis" href="{{SITE_ROOT}}#group/<%= groups[i].id %>/" title="<%- groups[i].name %>"><span class="sharp">#</span><%- groups[i].name %></a>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
<% } %>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
@@ -571,11 +575,11 @@
|
|||||||
<li>
|
<li>
|
||||||
<a href="{% url 'group_list' %}"><span class="sharp">#</span>{% trans "All Groups" %}</a>
|
<a href="{% url 'group_list' %}"><span class="sharp">#</span>{% trans "All Groups" %}</a>
|
||||||
</li>
|
</li>
|
||||||
{% for grp in grps %}
|
<% for (var i = 0, len = groups.length; i < len; i++) { %>
|
||||||
<li>
|
<li>
|
||||||
<a class="ellipsis" href="{{SITE_ROOT}}#group/{{ grp.id }}/" title="{{ grp.group_name }}"><span class="sharp">#</span>{{ grp.group_name }}</a>
|
<a class="ellipsis" href="{{SITE_ROOT}}#group/<%= groups[i].id %>/" title="<%- groups[i].name %>"><span class="sharp">#</span><%- groups[i].name %></a>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
<% } %>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<% } %>
|
<% } %>
|
||||||
@@ -640,11 +644,9 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="fright">
|
<div class="fright">
|
||||||
<span class="sf2-icon-cog1 op-icon" title="{% trans "Settings" %}" id="group-settings-icon"></span>
|
<span class="sf2-icon-cog1 op-icon" title="{% trans "Settings" %}" id="group-settings-icon"></span>
|
||||||
<span class="sf2-icon-user2 op-icon" title="{% trans "Members" %}" id="group-members-icon"></span>
|
<span class="sf2-icon-user2 op-icon" title="{% trans "Members" %}" id="group-members-icon"></span>
|
||||||
<% if (!is_pub) { %>
|
<span class="sf2-icon-msgs2 op-icon" title="{% trans "Discussion" %}"></span>
|
||||||
<span class="sf2-icon-msgs2 op-icon" title="{% trans "Discussion" %}"></span>
|
|
||||||
<% } %>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
@@ -42,11 +42,16 @@ define([
|
|||||||
Common.initNoticePopup();
|
Common.initNoticePopup();
|
||||||
|
|
||||||
this.sideNavView = new SideNavView();
|
this.sideNavView = new SideNavView();
|
||||||
|
app.ui = {
|
||||||
|
sideNavView: this.sideNavView
|
||||||
|
};
|
||||||
|
|
||||||
this.dirView = new DirView();
|
this.dirView = new DirView();
|
||||||
|
|
||||||
this.myHomeView = new MyHomeView({dirView: this.dirView});
|
this.myHomeView = new MyHomeView({dirView: this.dirView});
|
||||||
this.groupView = new GroupView({dirView: this.dirView});
|
this.groupView = new GroupView({
|
||||||
|
dirView: this.dirView
|
||||||
|
});
|
||||||
this.orgView = new OrgView({dirView: this.dirView});
|
this.orgView = new OrgView({dirView: this.dirView});
|
||||||
|
|
||||||
this.groupsView = new GroupsView();
|
this.groupsView = new GroupsView();
|
||||||
|
@@ -16,6 +16,8 @@ define([
|
|||||||
importMembersTemplate: _.template($('#group-import-members-form-tmpl').html()),
|
importMembersTemplate: _.template($('#group-import-members-form-tmpl').html()),
|
||||||
|
|
||||||
initialize: function(options) {
|
initialize: function(options) {
|
||||||
|
this.groupView = options.groupView;
|
||||||
|
|
||||||
// group basic info
|
// group basic info
|
||||||
this.group = {};
|
this.group = {};
|
||||||
|
|
||||||
@@ -65,7 +67,7 @@ define([
|
|||||||
}),
|
}),
|
||||||
cache: false,
|
cache: false,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (data) {
|
success: function(data) {
|
||||||
_this.group = data; // {id, name, owner, created_at, avatar_url, admins}
|
_this.group = data; // {id, name, owner, created_at, avatar_url, admins}
|
||||||
|
|
||||||
var username = app.pageOptions.username;
|
var username = app.pageOptions.username;
|
||||||
@@ -170,9 +172,8 @@ define([
|
|||||||
},
|
},
|
||||||
success: function() {
|
success: function() {
|
||||||
$.modal.close();
|
$.modal.close();
|
||||||
// TODO: improve
|
app.ui.sideNavView.updateGroups();
|
||||||
//app.router.navigate('group/' + _this.group_id + '/', {trigger: true, replace: true});
|
_this.groupView.renderGroupTop();
|
||||||
location.reload(true);
|
|
||||||
},
|
},
|
||||||
error: function(xhr) {
|
error: function(xhr) {
|
||||||
var error_msg;
|
var error_msg;
|
||||||
@@ -307,9 +308,8 @@ define([
|
|||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
beforeSend: Common.prepareCSRFToken,
|
beforeSend: Common.prepareCSRFToken,
|
||||||
success: function() {
|
success: function() {
|
||||||
|
app.ui.sideNavView.updateGroups();
|
||||||
app.router.navigate('groups/', {trigger: true});
|
app.router.navigate('groups/', {trigger: true});
|
||||||
// TO update side nav - 'group list'
|
|
||||||
location.reload(true); // improve it ??
|
|
||||||
},
|
},
|
||||||
error: function(xhr) {
|
error: function(xhr) {
|
||||||
var error_msg;
|
var error_msg;
|
||||||
@@ -343,9 +343,8 @@ define([
|
|||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
beforeSend: Common.prepareCSRFToken,
|
beforeSend: Common.prepareCSRFToken,
|
||||||
success: function() {
|
success: function() {
|
||||||
|
app.ui.sideNavView.updateGroups();
|
||||||
app.router.navigate('groups/', {trigger: true});
|
app.router.navigate('groups/', {trigger: true});
|
||||||
// TO update side nav - 'group list'
|
|
||||||
location.reload(true); // improve it ??
|
|
||||||
},
|
},
|
||||||
error: function(xhr) {
|
error: function(xhr) {
|
||||||
var err_msg;
|
var err_msg;
|
||||||
|
@@ -41,7 +41,10 @@ define([
|
|||||||
this.dirView = options.dirView;
|
this.dirView = options.dirView;
|
||||||
|
|
||||||
this.membersView = new GroupMembersView();
|
this.membersView = new GroupMembersView();
|
||||||
this.settingsView = new GroupSettingsView();
|
this.settingsView = new GroupSettingsView({
|
||||||
|
sideNavView: options.sideNavView,
|
||||||
|
groupView: this
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
addOne: function(repo, collection, options) {
|
addOne: function(repo, collection, options) {
|
||||||
@@ -76,13 +79,13 @@ define([
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
renderGroupTop: function(group_id) {
|
renderGroupTop: function() {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
var $groupTop = $('#group-top');
|
var $groupTop = $('#group-top');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: Common.getUrl({
|
url: Common.getUrl({
|
||||||
'name': 'group_basic_info',
|
'name': 'group',
|
||||||
'group_id': group_id
|
'group_id': this.group_id
|
||||||
}),
|
}),
|
||||||
cache: false,
|
cache: false,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
@@ -92,7 +95,7 @@ define([
|
|||||||
error: function(xhr) {
|
error: function(xhr) {
|
||||||
var err_msg;
|
var err_msg;
|
||||||
if (xhr.responseText) {
|
if (xhr.responseText) {
|
||||||
err_msg = $.parseJSON(xhr.responseText).error;
|
err_msg = $.parseJSON(xhr.responseText).error_msg;
|
||||||
} else {
|
} else {
|
||||||
err_msg = gettext("Please check the network.");
|
err_msg = gettext("Please check the network.");
|
||||||
}
|
}
|
||||||
@@ -105,7 +108,7 @@ define([
|
|||||||
this.group_id = group_id;
|
this.group_id = group_id;
|
||||||
this.dirView.hide();
|
this.dirView.hide();
|
||||||
this.$emptyTip.hide();
|
this.$emptyTip.hide();
|
||||||
this.renderGroupTop(group_id);
|
this.renderGroupTop();
|
||||||
this.$tabs.show();
|
this.$tabs.show();
|
||||||
this.$table.hide();
|
this.$table.hide();
|
||||||
var $loadingTip = this.$loadingTip;
|
var $loadingTip = this.$loadingTip;
|
||||||
|
@@ -110,6 +110,7 @@ define([
|
|||||||
if (groups.length == 1) {
|
if (groups.length == 1) {
|
||||||
_this.reset();
|
_this.reset();
|
||||||
}
|
}
|
||||||
|
app.ui.sideNavView.updateGroups();
|
||||||
},
|
},
|
||||||
error: function(collection, response, options) {
|
error: function(collection, response, options) {
|
||||||
var err_msg;
|
var err_msg;
|
||||||
|
@@ -17,6 +17,7 @@ define([
|
|||||||
this.data = {
|
this.data = {
|
||||||
'cur_tab': this.default_cur_tab,
|
'cur_tab': this.default_cur_tab,
|
||||||
'show_group_list': false, // when cur_tab is not 'group'
|
'show_group_list': false, // when cur_tab is not 'group'
|
||||||
|
'groups': app.pageOptions.groups,
|
||||||
'mods_enabled': app.pageOptions.user_mods_enabled,
|
'mods_enabled': app.pageOptions.user_mods_enabled,
|
||||||
'can_add_repo': app.pageOptions.can_add_repo,
|
'can_add_repo': app.pageOptions.can_add_repo,
|
||||||
};
|
};
|
||||||
@@ -85,13 +86,32 @@ define([
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
setCurTab: function (cur_tab, options) {
|
setCurTab: function(cur_tab, options) {
|
||||||
this.data.cur_tab = cur_tab || this.default_cur_tab;
|
this.data.cur_tab = cur_tab || this.default_cur_tab;
|
||||||
if (options) {
|
if (options) {
|
||||||
$.extend(this.data, options);
|
$.extend(this.data, options);
|
||||||
}
|
}
|
||||||
this.data.show_group_list = $('#group-nav .grp-list:visible').length ? true : false;
|
this.data.show_group_list = $('#group-nav .grp-list:visible').length ? true : false;
|
||||||
this.render();
|
this.render();
|
||||||
|
},
|
||||||
|
|
||||||
|
updateGroups: function() {
|
||||||
|
var _this = this;
|
||||||
|
$.ajax({
|
||||||
|
url: Common.getUrl({name: 'groups'}),
|
||||||
|
type: 'GET',
|
||||||
|
dataType: 'json',
|
||||||
|
cache: false,
|
||||||
|
success: function(data) {
|
||||||
|
data.sort(function(a, b) {
|
||||||
|
return Common.compareTwoWord(a.name, b.name);
|
||||||
|
});
|
||||||
|
_this.data.groups = data;
|
||||||
|
_this.render();
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@@ -108,7 +108,6 @@ define([
|
|||||||
case 'group_member': return siteRoot + 'api/v2.1/groups/' + options.group_id + '/members/' + options.email + '/';
|
case 'group_member': return siteRoot + 'api/v2.1/groups/' + options.group_id + '/members/' + options.email + '/';
|
||||||
case 'group_member_bulk': return siteRoot + 'api/v2.1/groups/' + options.group_id + '/members/bulk/';
|
case 'group_member_bulk': return siteRoot + 'api/v2.1/groups/' + options.group_id + '/members/bulk/';
|
||||||
case 'group_repos': return siteRoot + 'api2/groups/' + options.group_id + '/repos/';
|
case 'group_repos': return siteRoot + 'api2/groups/' + options.group_id + '/repos/';
|
||||||
case 'group_basic_info': return siteRoot + 'ajax/group/' + options.group_id + '/basic-info/';
|
|
||||||
case 'toggle_group_modules': return siteRoot + 'ajax/group/' + options.group_id + '/toggle-modules/';
|
case 'toggle_group_modules': return siteRoot + 'ajax/group/' + options.group_id + '/toggle-modules/';
|
||||||
case 'toggle_personal_modules': return siteRoot + 'ajax/toggle-personal-modules/';
|
case 'toggle_personal_modules': return siteRoot + 'ajax/toggle-personal-modules/';
|
||||||
case 'ajax_unset_inner_pub_repo': return siteRoot + 'ajax/unset-inner-pub-repo/' + options.repo_id + '/';
|
case 'ajax_unset_inner_pub_repo': return siteRoot + 'ajax/unset-inner-pub-repo/' + options.repo_id + '/';
|
||||||
|
Reference in New Issue
Block a user