1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-09 02:42:47 +00:00

[select2] upgraded it to v4.0

This commit is contained in:
llj
2018-07-26 18:28:17 +08:00
parent d9fbe44381
commit 62c3519e85
35 changed files with 428 additions and 4568 deletions

View File

@@ -98,21 +98,9 @@ define([
if (collection.perm_type == 'user') {
$('[name="emails"]', $panel).select2($.extend(
Common.contactInputOptionsForSelect2(), {
placeholder: gettext("Search user or enter email and press Enter") // to override 'placeholder' returned by `Common.conta...`
}));
} else {
var groups = app.pageOptions.joined_groups_exclude_address_book || [];
var g_opts = '';
for (var i = 0, len = groups.length; i < len; i++) {
g_opts += '<option value="' + groups[i].id + '" data-index="' + i + '">' + groups[i].name + '</option>';
}
$('[name="groups"]', $panel).html(g_opts).select2({
placeholder: gettext("Select a group"),
maximumSelectionSize: 1,
formatSelectionTooBig: gettext("You can only select 1 item"),
escapeMarkup: function(m) { return m; }
});
Common.contactInputOptionsForSelect2(), {
'width': '100%'
}));
}
// show existing items
@@ -156,6 +144,8 @@ define([
},
events: {
'click #repo-group-folder-perm-tab': 'clickGroupPermTab',
'click .js-add-folder': 'showFolderSelectForm',
'click .js-folder-select-submit': 'addFolder',
'click .js-folder-select-cancel': 'cancelFolderSelect',
@@ -164,6 +154,25 @@ define([
'click .js-group-perm-add-submit': 'addPerm'
},
clickGroupPermTab: function() {
var groups = app.pageOptions.joined_groups_exclude_address_book || [];
var group_list = [];
for (var i = 0, len = groups.length; i < len; i++) {
group_list.push({
id: groups[i].id,
text: groups[i].name
});
}
$('[name="groups"]', this.$groupPermPanel).select2({
language: Common.i18nForSelect2(),
width: '100%',
multiple: true,
data: group_list,
placeholder: gettext("Select groups"),
escapeMarkup: function(m) { return m; }
});
},
showFolderSelectForm: function(e) {
var $icon = $(e.currentTarget);
var $permContent = $icon.closest('.js-folder-perm-content').slideUp();
@@ -225,29 +234,36 @@ define([
if ($submit.hasClass('js-user-perm-add-submit')) {
for_user = true;
$panel = this.$userPermPanel;
url = Common.getUrl({name: 'repo_user_folder_perm', repo_id: this.repo_id});
$email_or_group = $('[name="emails"]', $panel);
var $email_or_group = $('[name="emails"]', $panel);
var email = $email_or_group.val();
if (!email) {
url = Common.getUrl({
name: 'repo_user_folder_perm',
repo_id: this.repo_id
});
var emails = $email_or_group.val(); // []
if (!emails.length) {
return false;
}
post_data = {'user_email': email.split(',')};
post_data = {'user_email': emails};
} else {
for_user = false;
$panel = this.$groupPermPanel;
url = Common.getUrl({name: 'repo_group_folder_perm', repo_id: this.repo_id});
$email_or_group = $('[name="groups"]', $panel);
var $email_or_group = $('[name="groups"]', $panel);
var group_val = $email_or_group.val().join(',');
if (!group_val) {
url = Common.getUrl({
name: 'repo_group_folder_perm',
repo_id: this.repo_id
});
var groups = $email_or_group.val();
if (!groups.length) {
return false;
}
post_data = {'group_id': group_val.split(',')};
post_data = {'group_id': groups};
}
var $path = $('[name="folder_path"]', $panel);
@@ -259,7 +275,10 @@ define([
return false;
}
$.extend(post_data, {'folder_path': path, 'permission': perm});
$.extend(post_data, {
'folder_path': path,
'permission': perm
});
var $error = $('.error', $panel);
Common.disableButton($submit);
@@ -276,12 +295,16 @@ define([
$(data.success).each(function(index, item) {
var encoded_path = Common.encodePath(item.folder_path);
var perm_item = new ItemView({
item_data: $.extend(item, {'for_user': for_user, 'show_folder_path': true, 'encoded_path': encoded_path})
item_data: $.extend(item, {
'for_user': for_user,
'show_folder_path': true,
'encoded_path': encoded_path
})
});
$('[name="folder_path"]', $panel).closest('tr').after(perm_item.el);
$path.closest('tr').after(perm_item.el);
});
$email_or_group.select2('val', '');
$email_or_group.val(null).trigger('change');
$path.val('');
$('option', $perm).prop('selected', false);
$('[value="rw"]', $perm).prop('selected', true);