mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-01 07:01:12 +00:00
Add library transfer
This commit is contained in:
@@ -1114,3 +1114,12 @@
|
|||||||
<script type="text/template" id="repo-share-link-admin-dialog-tmpl">
|
<script type="text/template" id="repo-share-link-admin-dialog-tmpl">
|
||||||
<h3><%= title %></h3>
|
<h3><%= title %></h3>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<script type="text/template" id="repo-transfer-form-tmpl">
|
||||||
|
<form method="post" action="">
|
||||||
|
<h3>{% trans "Transfer Library To" %}</h3>
|
||||||
|
<input type="hidden" name="email" /><br />
|
||||||
|
<p class="error hide"></p>
|
||||||
|
<input type="submit" value="{% trans "Submit" %}" />
|
||||||
|
</form>
|
||||||
|
</script>
|
||||||
|
@@ -17,6 +17,7 @@ define([
|
|||||||
template: _.template($('#repo-tmpl').html()),
|
template: _.template($('#repo-tmpl').html()),
|
||||||
repoDelConfirmTemplate: _.template($('#repo-del-confirm-template').html()),
|
repoDelConfirmTemplate: _.template($('#repo-del-confirm-template').html()),
|
||||||
renameTemplate: _.template($("#repo-rename-form-template").html()),
|
renameTemplate: _.template($("#repo-rename-form-template").html()),
|
||||||
|
transferTemplate: _.template($('#repo-transfer-form-tmpl').html()),
|
||||||
|
|
||||||
events: {
|
events: {
|
||||||
'mouseenter': 'highlight',
|
'mouseenter': 'highlight',
|
||||||
@@ -25,6 +26,7 @@ define([
|
|||||||
'click .repo-share-btn': 'share',
|
'click .repo-share-btn': 'share',
|
||||||
'click .js-toggle-popup': 'togglePopup',
|
'click .js-toggle-popup': 'togglePopup',
|
||||||
'click .js-repo-rename': 'rename',
|
'click .js-repo-rename': 'rename',
|
||||||
|
'click .js-repo-transfer': 'transfer',
|
||||||
'click .js-popup-history-settings': 'popupHistorySettings',
|
'click .js-popup-history-settings': 'popupHistorySettings',
|
||||||
'click .js-popup-permission-settings': 'popupPermissionSettings',
|
'click .js-popup-permission-settings': 'popupPermissionSettings',
|
||||||
'click .js-popup-share-link-admin': 'popupShareLinkAdmin'
|
'click .js-popup-share-link-admin': 'popupShareLinkAdmin'
|
||||||
@@ -218,6 +220,65 @@ define([
|
|||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
transfer: function() {
|
||||||
|
var _this = this;
|
||||||
|
this.togglePopup(); // Close the popup
|
||||||
|
|
||||||
|
var $form = $(this.transferTemplate());
|
||||||
|
$form.modal({focus:false});
|
||||||
|
$('#simplemodal-container').css({'width':'auto', 'height':'auto'});
|
||||||
|
|
||||||
|
$('[name="email"]', $form).select2($.extend(
|
||||||
|
Common.contactInputOptionsForSelect2(), {
|
||||||
|
width: '300px',
|
||||||
|
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.submit(function() {
|
||||||
|
var email = $.trim($('[name="email"]', $(this)).val());
|
||||||
|
if (!email) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (email == _this.model.get('owner')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var $submitBtn = $('[type="submit"]', $(this));
|
||||||
|
Common.disableButton($submitBtn);
|
||||||
|
$.ajax({
|
||||||
|
url: Common.getUrl({
|
||||||
|
'name': 'transfer_repo',
|
||||||
|
'repo_id': _this.model.get('id')
|
||||||
|
}),
|
||||||
|
type: 'put',
|
||||||
|
dataType: 'json',
|
||||||
|
beforeSend: Common.prepareCSRFToken,
|
||||||
|
data: {
|
||||||
|
'owner': email
|
||||||
|
},
|
||||||
|
success: function() {
|
||||||
|
// after the transfer, the former owner becomes a common admin of the group.
|
||||||
|
$.modal.close();
|
||||||
|
_this.remove();
|
||||||
|
Common.feedback(gettext("Transfer library succeeded."), 'success');
|
||||||
|
},
|
||||||
|
error: function(xhr) {
|
||||||
|
var error_msg;
|
||||||
|
if (xhr.responseText) {
|
||||||
|
error_msg = $.parseJSON(xhr.responseText).error_msg;
|
||||||
|
} else {
|
||||||
|
error_msg = gettext("Failed. Please check the network.");
|
||||||
|
}
|
||||||
|
$('.error', $form).html(error_msg).show();
|
||||||
|
Common.enableButton($submitBtn);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
popupHistorySettings: function() {
|
popupHistorySettings: function() {
|
||||||
var options = {
|
var options = {
|
||||||
'repo_name': this.model.get('name'),
|
'repo_name': this.model.get('name'),
|
||||||
|
@@ -99,6 +99,7 @@ define([
|
|||||||
case 'shared_repos': return siteRoot + 'api2/shared-repos/' + options.repo_id + '/';
|
case 'shared_repos': return siteRoot + 'api2/shared-repos/' + options.repo_id + '/';
|
||||||
case 'ajax_unset_inner_pub_repo': return siteRoot + 'ajax/unset-inner-pub-repo/' + options.repo_id + '/';
|
case 'ajax_unset_inner_pub_repo': return siteRoot + 'ajax/unset-inner-pub-repo/' + options.repo_id + '/';
|
||||||
case 'rename_repo': return siteRoot + 'api2/repos/' + options.repo_id + '/?op=rename';
|
case 'rename_repo': return siteRoot + 'api2/repos/' + options.repo_id + '/?op=rename';
|
||||||
|
case 'transfer_repo': return siteRoot + 'api2/repos/' + options.repo_id + '/owner/';
|
||||||
|
|
||||||
// Permission
|
// Permission
|
||||||
case 'set_user_folder_perm': return siteRoot + 'ajax/repo/' + options.repo_id + '/set-user-folder-perm/';
|
case 'set_user_folder_perm': return siteRoot + 'ajax/repo/' + options.repo_id + '/set-user-folder-perm/';
|
||||||
|
Reference in New Issue
Block a user