diff --git a/seahub/templates/sysadmin/settings.html b/seahub/templates/sysadmin/settings.html index 2787f16c5e..d3a6d88097 100644 --- a/seahub/templates/sysadmin/settings.html +++ b/seahub/templates/sysadmin/settings.html @@ -69,8 +69,11 @@ {% include "snippets/web_settings_form.html" %} {% endwith %} + +

{% trans "Groups" %}

+ {% with type="checkbox" setting_display_name="ENABLE_SHARE_TO_ALL_GROUPS" setting_name="ENABLE_SHARE_TO_ALL_GROUPS" setting_val=config_dict.ENABLE_SHARE_TO_ALL_GROUPS %} - {% trans "Enable share library to all groups" as help_tip %} + {% trans "Enable users to share libraries to any groups in the system." as help_tip %} {% include "snippets/web_settings_form.html" %} {% endwith %} diff --git a/static/scripts/app/views/share.js b/static/scripts/app/views/share.js index dcff2d6dbc..f6e41e4b42 100644 --- a/static/scripts/app/views/share.js +++ b/static/scripts/app/views/share.js @@ -638,7 +638,19 @@ define([ }); $add_item.after(new_item.el); }); - if (app.pageOptions.enable_share_to_all_groups){ + + var groups = []; + var prepareGroupsSelector = function() { + var g_opts = ''; + for (var i = 0, len = groups.length; i < len; i++) { + g_opts += ''; + } + $('[name="groups"]', $add_item).html(g_opts).select2({ + placeholder: gettext("Select groups"), + escapeMarkup: function(m) { return m; } + }); + }; + if (app.pageOptions.enable_share_to_all_groups) { $.ajax({ url: Common.getUrl({ name: 'all_groups' @@ -647,7 +659,6 @@ define([ dataType: 'json', cache: false, success: function(data){ - var groups = []; for (var i = 0, len = data.length; i < len; i++) { groups.push({ 'id': data[i].id, @@ -657,37 +668,31 @@ define([ groups.sort(function(a, b) { return Common.compareTwoWord(a.name, b.name); }); - var g_opts = ''; - for (var i = 0, len = groups.length; i < len; i++) { - g_opts += ''; - } - $('[name="groups"]', $add_item).html(g_opts).select2({ - placeholder: gettext("Select groups"), - escapeMarkup: function(m) { return m; } - }) }, error: function(xhr, textStatus, errorThrown) { - var g_opts = ''; - $('[name="groups"]', $add_item).html(g_opts).select2({ - placeholder: gettext("Please check network"), - }); - var $submitBtn = $('[type="submit"]', $add_item); - Common.disableButton($submitBtn); + var pre_msg = gettext("Failed to fetch groups:"); + var err_msg; + if (xhr.responseText) { + if (xhr.status == 403) { + err_msg = gettext("Permission error"); + } else { + err_msg = xhr.responseJSON.error_msg ? xhr.responseJSON.error_msg : gettext('Error'); + } + } else { + err_msg = gettext('Please check the network.'); + } + $('.error', $panel).html(pre_msg + ' ' + err_msg).show(); + }, + complete: function() { + prepareGroupsSelector(); + $table.removeClass('hide'); } }); } else { - var groups = app.pageOptions.groups || []; - var g_opts = ''; - for (var i = 0, len = groups.length; i < len; i++) { - g_opts += ''; - } - $('[name="groups"]', $add_item).html(g_opts).select2({ - placeholder: gettext("Select groups"), - escapeMarkup: function(m) { return m; } - }); + groups = app.pageOptions.groups || []; + prepareGroupsSelector(); + $table.removeClass('hide'); } - - $table.removeClass('hide'); }, error: function(xhr, textStatus, errorThrown) { var err_msg;