mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-02 07:27:04 +00:00
[group nav] modified 'enable modules'
This commit is contained in:
@@ -483,7 +483,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</script>
|
</script>
|
||||||
<script type="text/template" id="group-mods-enable-form-tmpl">
|
<script type="text/template" id="group-mods-enable-form-tmpl">
|
||||||
<form id="mods-enable-form" method="post" action="{{ SITE_ROOT }}group/<%= id %>/modules/toggle/" class="hide">{% csrf_token%}
|
<form id="mods-enable-form" method="post" action="" class="hide">{% csrf_token%}
|
||||||
<h3>{% trans "Enable Modules"%}</h3>
|
<h3>{% trans "Enable Modules"%}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<% for (var i = 0, len = mods_available.length; i < len; i++) { %>
|
<% for (var i = 0, len = mods_available.length; i < len; i++) { %>
|
||||||
|
@@ -152,6 +152,7 @@ urlpatterns = patterns('',
|
|||||||
url(r'^ajax/u/d/(?P<token>[-0-9a-f]{10})/upload/$', get_file_upload_url_ul, name='get_file_upload_url_ul'),
|
url(r'^ajax/u/d/(?P<token>[-0-9a-f]{10})/upload/$', get_file_upload_url_ul, name='get_file_upload_url_ul'),
|
||||||
url(r'^ajax/group/(?P<group_id>\d+)/repos/$', get_unenc_group_repos, name='get_group_repos'),
|
url(r'^ajax/group/(?P<group_id>\d+)/repos/$', get_unenc_group_repos, name='get_group_repos'),
|
||||||
url(r'^ajax/group/(?P<group_id>\d+)/basic-info/$', get_group_basic_info, name='get_group_basic_info'),
|
url(r'^ajax/group/(?P<group_id>\d+)/basic-info/$', get_group_basic_info, name='get_group_basic_info'),
|
||||||
|
url(r'^ajax/group/(?P<group_id>\d+)/toggle-modules/$', toggle_group_modules, name='toggle_group_modules'),
|
||||||
url(r'^ajax/my-unenc-repos/$', get_my_unenc_repos, name='get_my_unenc_repos'),
|
url(r'^ajax/my-unenc-repos/$', get_my_unenc_repos, name='get_my_unenc_repos'),
|
||||||
url(r'^ajax/unenc-rw-repos/$', unenc_rw_repos, name='unenc_rw_repos'),
|
url(r'^ajax/unenc-rw-repos/$', unenc_rw_repos, name='unenc_rw_repos'),
|
||||||
url(r'^ajax/contacts/$', get_contacts, name='get_contacts'),
|
url(r'^ajax/contacts/$', get_contacts, name='get_contacts'),
|
||||||
|
@@ -41,7 +41,8 @@ from seahub.views import get_repo_dirents_with_perm, validate_owner, \
|
|||||||
from seahub.views.repo import get_nav_path, get_fileshare, get_dir_share_link, \
|
from seahub.views.repo import get_nav_path, get_fileshare, get_dir_share_link, \
|
||||||
get_uploadlink, get_dir_shared_upload_link
|
get_uploadlink, get_dir_shared_upload_link
|
||||||
from seahub.views.modules import get_enabled_mods_by_group, \
|
from seahub.views.modules import get_enabled_mods_by_group, \
|
||||||
get_available_mods_by_group
|
get_available_mods_by_group, enable_mod_for_group, \
|
||||||
|
disable_mod_for_group, MOD_GROUP_WIKI
|
||||||
from seahub.group.views import is_group_staff
|
from seahub.group.views import is_group_staff
|
||||||
import seahub.settings as settings
|
import seahub.settings as settings
|
||||||
from seahub.settings import ENABLE_THUMBNAIL, THUMBNAIL_ROOT, \
|
from seahub.settings import ENABLE_THUMBNAIL, THUMBNAIL_ROOT, \
|
||||||
@@ -2454,3 +2455,32 @@ def get_group_basic_info(request, group_id):
|
|||||||
"mods_available": mods_available,
|
"mods_available": mods_available,
|
||||||
"mods_enabled": mods_enabled,
|
"mods_enabled": mods_enabled,
|
||||||
}), content_type=content_type)
|
}), content_type=content_type)
|
||||||
|
|
||||||
|
@login_required_ajax
|
||||||
|
def toggle_group_modules(request, group_id):
|
||||||
|
|
||||||
|
content_type = 'application/json; charset=utf-8'
|
||||||
|
result = {}
|
||||||
|
|
||||||
|
group_id_int = int(group_id) # Checked by URL Conf
|
||||||
|
group = get_group(group_id_int)
|
||||||
|
if not group:
|
||||||
|
result["error"] = _('Group does not exist.')
|
||||||
|
return HttpResponse(json.dumps(result),
|
||||||
|
status=400, content_type=content_type)
|
||||||
|
|
||||||
|
group.is_staff = is_group_staff(group, request.user)
|
||||||
|
if not group.is_staff:
|
||||||
|
result["error"] = _('Permission denied.')
|
||||||
|
return HttpResponse(json.dumps(result),
|
||||||
|
status=403, content_type=content_type)
|
||||||
|
|
||||||
|
group_wiki = request.POST.get('group_wiki', '')
|
||||||
|
if group_wiki == 'true':
|
||||||
|
enable_mod_for_group(group.id, MOD_GROUP_WIKI)
|
||||||
|
else:
|
||||||
|
disable_mod_for_group(group.id, MOD_GROUP_WIKI)
|
||||||
|
|
||||||
|
return HttpResponse(json.dumps({
|
||||||
|
"success": True
|
||||||
|
}), content_type=content_type)
|
||||||
|
@@ -16,9 +16,6 @@ define([
|
|||||||
},
|
},
|
||||||
|
|
||||||
render: function (group_id) {
|
render: function (group_id) {
|
||||||
if (this.group_id && this.group_id == group_id) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.group_id = group_id;
|
this.group_id = group_id;
|
||||||
var _this = this;
|
var _this = this;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@@ -52,7 +49,6 @@ define([
|
|||||||
|
|
||||||
enableMods: function () {
|
enableMods: function () {
|
||||||
var form = $(this.enableModTemplate({
|
var form = $(this.enableModTemplate({
|
||||||
'id': this.group_id,
|
|
||||||
'mods_available': this.mods_available,
|
'mods_available': this.mods_available,
|
||||||
'mods_enabled': this.mods_enabled
|
'mods_enabled': this.mods_enabled
|
||||||
}));
|
}));
|
||||||
@@ -61,7 +57,29 @@ define([
|
|||||||
$('.checkbox-orig', form).click(function() {
|
$('.checkbox-orig', form).click(function() {
|
||||||
$(this).parent().toggleClass('checkbox-checked');
|
$(this).parent().toggleClass('checkbox-checked');
|
||||||
});
|
});
|
||||||
// TODO: after form submit, page goes to http://127.0.0.1:8000/
|
var checkbox = $('[name="group_wiki"]');
|
||||||
|
var original_checked = checkbox.prop('checked');
|
||||||
|
var _this = this;
|
||||||
|
form.submit(function() {
|
||||||
|
var cur_checked = checkbox.prop('checked');
|
||||||
|
if (cur_checked == original_checked) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Common.ajaxPost({
|
||||||
|
form: form,
|
||||||
|
form_id: form.attr('id'),
|
||||||
|
post_url: Common.getUrl({
|
||||||
|
'name': 'toggle_group_modules',
|
||||||
|
'group_id': _this.group_id,
|
||||||
|
}),
|
||||||
|
post_data: {'group_wiki': cur_checked },
|
||||||
|
after_op_success: function () {
|
||||||
|
$.modal.close();
|
||||||
|
_this.render(_this.group_id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
show: function() {
|
show: function() {
|
||||||
|
@@ -65,8 +65,13 @@ define([
|
|||||||
},
|
},
|
||||||
|
|
||||||
showSideNav: function () {
|
showSideNav: function () {
|
||||||
this.sideNavView.render(this.group_id);
|
var sideNavView = this.sideNavView;
|
||||||
this.sideNavView.show();
|
if (sideNavView.group_id && sideNavView.group_id == this.group_id) {
|
||||||
|
sideNavView.show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sideNavView.render(this.group_id);
|
||||||
|
sideNavView.show();
|
||||||
},
|
},
|
||||||
|
|
||||||
showRepoList: function(group_id) {
|
showRepoList: function(group_id) {
|
||||||
|
@@ -111,6 +111,7 @@ define([
|
|||||||
|
|
||||||
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 '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/';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user