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>
|
||||
<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>
|
||||
{% for grp in grps %}
|
||||
<li<% if (cur_group_id == '{{ grp.id }}') { %> class="tab-cur"<% }%>>
|
||||
<a class="ellipsis" href="{{SITE_ROOT}}#group/{{ grp.id }}/" title="{{ grp.group_name }}"><span class="sharp">#</span>{{ grp.group_name }}</a>
|
||||
<% for (var i = 0, len = groups.length; i < len; i++) { %>
|
||||
<% if (cur_group_id == groups[i].id) { %>
|
||||
<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>
|
||||
{% endfor %}
|
||||
<% } %>
|
||||
</ul>
|
||||
</li>
|
||||
<% } else { %>
|
||||
@@ -571,11 +575,11 @@
|
||||
<li>
|
||||
<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>
|
||||
<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>
|
||||
{% endfor %}
|
||||
<% } %>
|
||||
</ul>
|
||||
</li>
|
||||
<% } %>
|
||||
@@ -640,11 +644,9 @@
|
||||
{% endif %}
|
||||
|
||||
<div class="fright">
|
||||
<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>
|
||||
<% if (!is_pub) { %>
|
||||
<span class="sf2-icon-msgs2 op-icon" title="{% trans "Discussion" %}"></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-msgs2 op-icon" title="{% trans "Discussion" %}"></span>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
@@ -42,11 +42,16 @@ define([
|
||||
Common.initNoticePopup();
|
||||
|
||||
this.sideNavView = new SideNavView();
|
||||
app.ui = {
|
||||
sideNavView: this.sideNavView
|
||||
};
|
||||
|
||||
this.dirView = new 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.groupsView = new GroupsView();
|
||||
|
@@ -16,6 +16,8 @@ define([
|
||||
importMembersTemplate: _.template($('#group-import-members-form-tmpl').html()),
|
||||
|
||||
initialize: function(options) {
|
||||
this.groupView = options.groupView;
|
||||
|
||||
// group basic info
|
||||
this.group = {};
|
||||
|
||||
@@ -65,7 +67,7 @@ define([
|
||||
}),
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
success: function(data) {
|
||||
_this.group = data; // {id, name, owner, created_at, avatar_url, admins}
|
||||
|
||||
var username = app.pageOptions.username;
|
||||
@@ -170,9 +172,8 @@ define([
|
||||
},
|
||||
success: function() {
|
||||
$.modal.close();
|
||||
// TODO: improve
|
||||
//app.router.navigate('group/' + _this.group_id + '/', {trigger: true, replace: true});
|
||||
location.reload(true);
|
||||
app.ui.sideNavView.updateGroups();
|
||||
_this.groupView.renderGroupTop();
|
||||
},
|
||||
error: function(xhr) {
|
||||
var error_msg;
|
||||
@@ -307,9 +308,8 @@ define([
|
||||
dataType: 'json',
|
||||
beforeSend: Common.prepareCSRFToken,
|
||||
success: function() {
|
||||
app.ui.sideNavView.updateGroups();
|
||||
app.router.navigate('groups/', {trigger: true});
|
||||
// TO update side nav - 'group list'
|
||||
location.reload(true); // improve it ??
|
||||
},
|
||||
error: function(xhr) {
|
||||
var error_msg;
|
||||
@@ -343,9 +343,8 @@ define([
|
||||
dataType: 'json',
|
||||
beforeSend: Common.prepareCSRFToken,
|
||||
success: function() {
|
||||
app.ui.sideNavView.updateGroups();
|
||||
app.router.navigate('groups/', {trigger: true});
|
||||
// TO update side nav - 'group list'
|
||||
location.reload(true); // improve it ??
|
||||
},
|
||||
error: function(xhr) {
|
||||
var err_msg;
|
||||
|
@@ -41,7 +41,10 @@ define([
|
||||
this.dirView = options.dirView;
|
||||
|
||||
this.membersView = new GroupMembersView();
|
||||
this.settingsView = new GroupSettingsView();
|
||||
this.settingsView = new GroupSettingsView({
|
||||
sideNavView: options.sideNavView,
|
||||
groupView: this
|
||||
});
|
||||
},
|
||||
|
||||
addOne: function(repo, collection, options) {
|
||||
@@ -76,13 +79,13 @@ define([
|
||||
}
|
||||
},
|
||||
|
||||
renderGroupTop: function(group_id) {
|
||||
renderGroupTop: function() {
|
||||
var _this = this;
|
||||
var $groupTop = $('#group-top');
|
||||
$.ajax({
|
||||
url: Common.getUrl({
|
||||
'name': 'group_basic_info',
|
||||
'group_id': group_id
|
||||
'name': 'group',
|
||||
'group_id': this.group_id
|
||||
}),
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
@@ -92,7 +95,7 @@ define([
|
||||
error: function(xhr) {
|
||||
var err_msg;
|
||||
if (xhr.responseText) {
|
||||
err_msg = $.parseJSON(xhr.responseText).error;
|
||||
err_msg = $.parseJSON(xhr.responseText).error_msg;
|
||||
} else {
|
||||
err_msg = gettext("Please check the network.");
|
||||
}
|
||||
@@ -105,7 +108,7 @@ define([
|
||||
this.group_id = group_id;
|
||||
this.dirView.hide();
|
||||
this.$emptyTip.hide();
|
||||
this.renderGroupTop(group_id);
|
||||
this.renderGroupTop();
|
||||
this.$tabs.show();
|
||||
this.$table.hide();
|
||||
var $loadingTip = this.$loadingTip;
|
||||
|
@@ -110,6 +110,7 @@ define([
|
||||
if (groups.length == 1) {
|
||||
_this.reset();
|
||||
}
|
||||
app.ui.sideNavView.updateGroups();
|
||||
},
|
||||
error: function(collection, response, options) {
|
||||
var err_msg;
|
||||
|
@@ -17,6 +17,7 @@ define([
|
||||
this.data = {
|
||||
'cur_tab': this.default_cur_tab,
|
||||
'show_group_list': false, // when cur_tab is not 'group'
|
||||
'groups': app.pageOptions.groups,
|
||||
'mods_enabled': app.pageOptions.user_mods_enabled,
|
||||
'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;
|
||||
if (options) {
|
||||
$.extend(this.data, options);
|
||||
}
|
||||
this.data.show_group_list = $('#group-nav .grp-list:visible').length ? true : false;
|
||||
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_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_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_personal_modules': return siteRoot + 'ajax/toggle-personal-modules/';
|
||||
case 'ajax_unset_inner_pub_repo': return siteRoot + 'ajax/unset-inner-pub-repo/' + options.repo_id + '/';
|
||||
|
Reference in New Issue
Block a user