1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-12 21:30:39 +00:00

Revert "[select2] upgraded it to v4.0"

This reverts commit 62c3519e85.
This commit is contained in:
lian
2018-08-03 16:08:29 +08:00
parent 20cb4ce86f
commit ee8e4135ea
35 changed files with 4567 additions and 428 deletions

View File

@@ -98,9 +98,21 @@ define([
if (collection.perm_type == 'user') {
$('[name="emails"]', $panel).select2($.extend(
Common.contactInputOptionsForSelect2(), {
'width': '100%'
}));
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; }
});
}
// show existing items
@@ -135,8 +147,6 @@ 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',
@@ -145,25 +155,6 @@ 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,36 +216,29 @@ define([
if ($submit.hasClass('js-user-perm-add-submit')) {
for_user = true;
$panel = this.$userPermPanel;
$email_or_group = $('[name="emails"]', $panel);
url = Common.getUrl({name: 'repo_user_folder_perm', repo_id: this.repo_id});
url = Common.getUrl({
name: 'repo_user_folder_perm',
repo_id: this.repo_id
});
var emails = $email_or_group.val(); // []
if (!emails.length) {
var $email_or_group = $('[name="emails"]', $panel);
var email = $email_or_group.val();
if (!email) {
return false;
}
post_data = {'user_email': emails};
post_data = {'user_email': email.split(',')};
} else {
for_user = false;
$panel = this.$groupPermPanel;
$email_or_group = $('[name="groups"]', $panel);
url = Common.getUrl({name: 'repo_group_folder_perm', repo_id: this.repo_id});
url = Common.getUrl({
name: 'repo_group_folder_perm',
repo_id: this.repo_id
});
var groups = $email_or_group.val();
if (!groups.length) {
var $email_or_group = $('[name="groups"]', $panel);
var group_val = $email_or_group.val().join(',');
if (!group_val) {
return false;
}
post_data = {'group_id': groups};
post_data = {'group_id': group_val.split(',')};
}
var $path = $('[name="folder_path"]', $panel);
@@ -266,10 +250,7 @@ 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);
@@ -286,16 +267,12 @@ 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})
});
$path.closest('tr').after(perm_item.el);
$('[name="folder_path"]', $panel).closest('tr').after(perm_item.el);
});
$email_or_group.val(null).trigger('change');
$email_or_group.select2('val', '');
$path.val('');
$('option', $perm).prop('selected', false);
$('[value="rw"]', $perm).prop('selected', true);

View File

@@ -70,8 +70,7 @@ define([
str += '<li class="cur-tag fleft">' + Common.HTMLescape(tags[i].name) + '</li>';
s2_tags.push({
'id': tags[i].name,
'text': tags[i].name,
'selected': true
'text': tags[i].name
});
}
this.s2_tags = s2_tags;
@@ -84,19 +83,18 @@ define([
this.$('.cur-tags, .tags-edit-icon').hide();
this.$('.tags-submit-btn').show();
var $input = this.$('.tags-input');
// Select2 has been initialized
if ($input.hasClass("select2-hidden-accessible")) {
this.$('.select2-container').show();
$input.val(this.s2_tags2).trigger('change'); // s2_tags2
var $input = this.$('input.tags-input');
var $s2_container = this.$('.tags-input.select2-container');
if ($s2_container.length) {
$input.select2('data', this.s2_tags);
$s2_container.show();
} else {
$input.show()
.select2({
language: Common.i18nForSelect2(),
width: '100%',
multiple: true,
tags: this.s2_tags
});
tags: [],
formatNoMatches: gettext("No matches")
})
.select2('data', this.s2_tags);
}
return false;
},
@@ -104,7 +102,7 @@ define([
submitTags: function() {
var _this = this;
var $input = this.$('.tags-input');
var tags = $input.val();
var tags = $input.select2('val');
var $submit = this.$('.tags-submit-btn');
var $error = this.$('.tags-container .error');
var error_msg;
@@ -141,14 +139,15 @@ define([
var s2_tags = [];
for (var i = 0, len = tags.length; i < len; i++) {
str += '<li class="cur-tag fleft">' + Common.HTMLescape(tags[i].name) + '</li>';
s2_tags.push(tags[i].name);
s2_tags.push({
'id': tags[i].name,
'text': tags[i].name
});
}
_this.s2_tags2 = s2_tags; // s2_tags2
_this.s2_tags = s2_tags;
$input.hide();
_this.$('.tags-input').hide();
$submit.hide();
_this.$('.select2-container').hide();
_this.$('.cur-tags').html(str).show();
_this.$('.tags-edit-icon').show();
},

View File

@@ -120,37 +120,18 @@ define([
'group_id': this.group_id
});
}
$('[name="email"]', this.$add_user_perm).select2($.extend({
'width': '100%'
}, Common.contactInputOptionsForSelect2({'url': url})));
},
events: {
'click #group-folder-perm-tab': 'clickGroupFolderPermTab',
'click #add-user-folder-perm .submit': 'addFolderPerm',
'click #add-group-folder-perm .submit': 'addFolderPerm'
},
clickGroupFolderPermTab: function() {
var _this = this;
$('[name="email"]', this.$add_user_perm).select2(
Common.contactInputOptionsForSelect2({'url': url}));
// use select2 to 'group' input in 'add group perm'
var groups;
var prepareGroupSelector = function(groups) {
var group_list = [];
var g_opts = '';
for (var i = 0, len = groups.length; i < len; i++) {
group_list.push({
id: groups[i].id,
text: groups[i].name
});
g_opts += '<option value="' + groups[i].id + '" data-index="' + i + '">' + groups[i].name + '</option>';
}
$('[name="group"]', _this.$add_group_perm).select2({
language: Common.i18nForSelect2(),
width: '100%',
multiple: true,
$('[name="group"]', _this.$add_group_perm).html(g_opts).select2({
placeholder: gettext("Select groups"),
data: group_list,
escapeMarkup: function(m) { return m; }
});
};
@@ -178,12 +159,16 @@ define([
}
},
events: {
'click #add-user-folder-perm .submit': 'addFolderPerm',
'click #add-group-folder-perm .submit': 'addFolderPerm'
},
addFolderPerm: function(e) {
var $form, $input, $error, url, perm, post_data, extended_data;
var $form, $error, url, post_data, extended_data;
if ($(e.currentTarget).closest('tr').attr('id') == 'add-user-folder-perm') {
$form = this.$add_user_perm;
$input = $('[name="email"]', $form);
$error = $('#user-folder-perm .error');
url = Common.getUrl({
@@ -192,17 +177,17 @@ define([
'repo_user_folder_perm',
repo_id: this.repo_id
});
var emails_group_ids_input = $('[name="email"]', $form),
emails = emails_group_ids_input.val(),
perm = $('[name="permission"]', $form).val();
var emails = $input.val(); // []
perm = $('[name="permission"]', $form).val();
if (!emails.length || !perm) {
if (!emails || !perm) {
return false;
}
post_data = {
'folder_path': this.path,
'user_email': emails,
'user_email': emails.split(','),
'permission': perm
};
@@ -213,7 +198,6 @@ define([
} else {
$form = this.$add_group_perm;
$input = $('[name="group"]', $form);
$error = $('#group-folder-perm .error');
url = Common.getUrl({
@@ -223,16 +207,17 @@ define([
repo_id: this.repo_id
});
var group_ids = $input.val();
perm = $('[name="permission"]', $form).val();
var emails_group_ids_input = $('[name="group"]', $form),
group_ids = emails_group_ids_input.val().join(','),
perm = $('[name="permission"]', $form).val();
if (!group_ids.length || !perm) {
if (!group_ids || !perm) {
return false;
}
post_data = {
'folder_path': this.path,
'group_id': group_ids,
'group_id': group_ids.split(','),
'permission': perm
};
@@ -262,7 +247,7 @@ define([
$form.closest('tr').after(perm_item.el);
});
$input.val(null).trigger('change');
emails_group_ids_input.select2("val", "");
$error.addClass('hide');
}
if (data.failed.length > 0) {

View File

@@ -130,7 +130,7 @@ define([
validate: true,
prepend: true,
success: function() {
$input.val(null).trigger('change');
$input.select2('val', '');
},
error: function(collection, response, options) {
var error_msg = Common.prepareAjaxErrorMsg(response);
@@ -148,7 +148,7 @@ define([
beforeSend: Common.prepareCSRFToken,
data: {'emails': input_val},
success: function(data) { // data: {success, failed}
$input.val(null).trigger('change');
$input.select2('val', '');
if (data.success.length > 0) {
_this.collection.add(data.success, {prepend: true});

View File

@@ -146,13 +146,14 @@ define([
$('[name="email"]', $form).select2($.extend(
Common.contactInputOptionsForSelect2(), {
width: '268px',
maximumSelectionLength: 1,
placeholder: gettext("Search user or enter email and press Enter")
maximumSelectionSize: 1,
placeholder: gettext("Search user or enter email and press Enter"), // to override 'placeholder' returned by `Common.conta...`
formatSelectionTooBig: gettext("You cannot select any more choices")
}));
$form.on('submit', function() {
var email = $('[name="email"]', $(this)).val(); // []
if (!email.length) {
var email = $.trim($('[name="email"]', $(this)).val());
if (!email) {
return false;
}
if (email == _this.groupView.group.owner) {
@@ -170,7 +171,7 @@ define([
dataType: 'json',
beforeSend: Common.prepareCSRFToken,
data: {
'owner': email[0]
'owner': email
},
success: function(data) {
_this.groupView.group = data;

View File

@@ -243,13 +243,14 @@ define([
$('[name="email"]', $form).select2($.extend(
Common.contactInputOptionsForSelect2(), {
width: '280px',
maximumSelectionLength: 1,
placeholder: gettext("Search user or enter email and press Enter")
maximumSelectionSize: 1,
placeholder: gettext("Search user or enter email and press Enter"), // to override 'placeholder' returned by `Common.conta...`
formatSelectionTooBig: gettext("You cannot select any more choices")
}));
$form.on('submit', function() {
var email = $('[name="email"]', $(this)).val(); // []
if (!email.length) {
var email = $.trim($('[name="email"]', $(this)).val());
if (!email) {
return false;
}
if (email == _this.model.get('owner')) {
@@ -267,7 +268,7 @@ define([
dataType: 'json',
beforeSend: Common.prepareCSRFToken,
data: {
'owner': email[0]
'owner': email
},
success: function() {
$.modal.close();
@@ -387,12 +388,7 @@ define([
});
}
$('#simplemodal-data').html($form);
$('[name="labels"]', $form).select2({
language: Common.i18nForSelect2(),
width: '100%',
multiple: true,
tags: s2_data
});
$('[name="labels"]', $form).select2({tags: s2_data});
},
error: function(xhr) {
var error_msg = Common.prepareAjaxErrorMsg(xhr);
@@ -402,11 +398,11 @@ define([
$form.on('submit', function() {
var $input = $('[name="labels"]', $form);
var labels = $input.val();
var labels = $input.select2('val');
var $error = $('.error', $form);
var $submit = $('[type="submit"]', $form);
if (!labels.length) {
if (labels.length == 0) {
$error.html(gettext("It is required.")).show();
return false;
}

View File

@@ -53,7 +53,7 @@ define([
}).modal({focus:false});
}
this.$("#share-tabs").tabs({});
this.$("#share-tabs").tabs();
if (!this.repo_encrypted && app.pageOptions.can_generate_share_link) {
this.downloadLinkPanelInit();
@@ -106,9 +106,6 @@ define([
},
events: {
'click #dir-user-share-tab': 'clickUserShareTab',
'click #dir-group-share-tab': 'clickGroupShareTab',
'click [type="checkbox"]': 'clickCheckbox',
'click .shared-link': 'clickToSelect',
@@ -140,40 +137,6 @@ define([
'click #add-dir-group-share-item .submit': 'dirGroupShare'
},
// To make select2 input get the right width
clickUserShareTab: function() {
var $add_item = $('#add-dir-user-share-item');
$('[name="emails"]', $add_item).select2($.extend({
'width': '100%'
}, Common.contactInputOptionsForSelect2()));
},
clickGroupShareTab: function() {
var $add_item = $('#add-dir-group-share-item');
var prepareGroupsSelector = function(groups) {
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"]', $add_item).select2({
language: Common.i18nForSelect2(),
width: '100%',
multiple: true,
placeholder: gettext("Select groups"),
data: group_list,
escapeMarkup: function(m) { return m; }
});
};
if (this.parent_group_id) { // group owned repo
this.prepareAvailableGroupsForGroupOwnedRepo({'callback': prepareGroupsSelector});
} else {
this.prepareAvailableGroups({'callback': prepareGroupsSelector});
}
},
clickCheckbox: function(e) {
var $el = $(e.currentTarget);
// for link options such as 'password', 'expire'
@@ -676,6 +639,9 @@ define([
});
$add_item.after(new_item.el);
});
$('[name="emails"]', $add_item).select2($.extend({
//width: '292px' // the container will copy class 'w100' from the original element to get width
},Common.contactInputOptionsForSelect2()));
$table.removeClass('hide');
},
error: function(xhr, textStatus, errorThrown) {
@@ -818,7 +784,23 @@ define([
});
$add_item.after(new_item.el);
});
$table.removeClass('hide');
var prepareGroupsSelector = function(groups) {
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"]', $add_item).html(g_opts).select2({
placeholder: gettext("Select groups"),
escapeMarkup: function(m) { return m; }
});
$table.removeClass('hide');
};
if (_this.parent_group_id) { // group owned repo
_this.prepareAvailableGroupsForGroupOwnedRepo({'callback': prepareGroupsSelector});
} else {
_this.prepareAvailableGroups({'callback': prepareGroupsSelector});
}
},
error: function(xhr, textStatus, errorThrown) {
var err_msg = Common.prepareAjaxErrorMsg(xhr);
@@ -840,9 +822,9 @@ define([
var $panel = $('#dir-user-share');
var $form = this.$('#add-dir-user-share-item'); // pseudo form
var $emails_input = $('[name="emails"]', $form),
emails = $emails_input.val(); // []
if (!emails.length) {
var emails_input = $('[name="emails"]', $form),
emails = emails_input.val(); // string
if (!emails) {
return false;
}
@@ -864,7 +846,7 @@ define([
data = {
'permission': perm,
'path': path,
'username': emails
'username': emails.split(',')
};
} else {
url = Common.getUrl({
@@ -874,7 +856,7 @@ define([
method = 'PUT';
data = {
'share_type': 'user',
'username': emails,
'username': emails.split(','),
'permission': perm
};
}
@@ -898,7 +880,7 @@ define([
});
$add_item.after(new_item.el);
});
$emails_input.val(null).trigger('change'); // clear the selected items
emails_input.select2("val", "");
$('option', $perm).prop('selected', false);
$('[value="rw"]', $perm).prop('selected', true);
$error.addClass('hide');
@@ -928,9 +910,9 @@ define([
var $form = this.$('#add-dir-group-share-item'); // pseudo form
var $groups_input = $('[name="groups"]', $form),
groups = $groups_input.val(); // [] or [group.id]
groups = $groups_input.val(); // null or [group.id]
if (!groups.length) {
if (!groups) {
return false;
}
@@ -985,7 +967,7 @@ define([
});
$add_item.after(new_item.el);
});
$groups_input.val(null).trigger('change'); // clear the selected items
$groups_input.select2("val", "");
$('option', $perm).prop('selected', false);
$('[value="rw"]', $perm).prop('selected', true);
$error.addClass('hide');