mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-02 15:38:15 +00:00
[backbone] Show new file popup
This commit is contained in:
@@ -16,6 +16,8 @@ define([
|
|||||||
el: $('#dir-view'),
|
el: $('#dir-view'),
|
||||||
path_bar_template: _.template(PathBarTemplate),
|
path_bar_template: _.template(PathBarTemplate),
|
||||||
dir_op_bar_template: _.template(DirOpBarTemplate),
|
dir_op_bar_template: _.template(DirOpBarTemplate),
|
||||||
|
newDirTemplate: _.template($("#add-new-dir-form-template").html()),
|
||||||
|
newFileTemplate: _.template($("#add-new-file-form-template").html()),
|
||||||
|
|
||||||
initialize: function(options) {
|
initialize: function(options) {
|
||||||
this.$dirent_list = this.$('.repo-file-list tbody');
|
this.$dirent_list = this.$('.repo-file-list tbody');
|
||||||
@@ -57,29 +59,29 @@ define([
|
|||||||
},
|
},
|
||||||
|
|
||||||
renderPath: function() {
|
renderPath: function() {
|
||||||
var dir = this.dir;
|
var dir = this.dir,
|
||||||
var path = dir.path,
|
path = dir.path,
|
||||||
obj = {
|
obj = {path: path, repo_name: dir.repo_name};
|
||||||
path: path,
|
|
||||||
repo_name: dir.repo_name,
|
|
||||||
};
|
|
||||||
if (path != '/') {
|
if (path != '/') {
|
||||||
$.extend(obj, {
|
$.extend(obj, {
|
||||||
path_list: path.substr(1).split('/'),
|
path_list: path.substr(1).split('/'),
|
||||||
repo_id: dir.repo_id,
|
repo_id: dir.repo_id
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$path_bar.html(this.path_bar_template(obj));
|
this.$path_bar.html(this.path_bar_template(obj));
|
||||||
},
|
},
|
||||||
|
|
||||||
renderDirOpBar: function() {
|
renderDirOpBar: function() {
|
||||||
var dir = this.dir;
|
var dir = this.dir,
|
||||||
var user_perm = dir.user_perm;
|
user_perm = dir.user_perm;
|
||||||
|
|
||||||
this.$dir_op_bar.html($.trim(this.dir_op_bar_template({
|
this.$dir_op_bar.html($.trim(this.dir_op_bar_template({
|
||||||
user_perm: user_perm,
|
user_perm: user_perm,
|
||||||
encrypted: dir.encrypted,
|
encrypted: dir.encrypted,
|
||||||
path: dir.path,
|
path: dir.path,
|
||||||
repo_id: dir.repo_id,
|
repo_id: dir.repo_id
|
||||||
})));
|
})));
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -99,47 +101,95 @@ define([
|
|||||||
},
|
},
|
||||||
|
|
||||||
newDir: function() {
|
newDir: function() {
|
||||||
var form = $('#add-new-dir-form'),
|
var form = $(this.newDirTemplate()),
|
||||||
form_id = form.attr('id');
|
form_id = form.attr('id'),
|
||||||
form.modal({appendTo:'#main'});
|
dir = this.dir,
|
||||||
$('#simplemodal-container').css({'height':'auto'});
|
dirView = this;
|
||||||
var dir = this.dir;
|
|
||||||
var dirView = this;
|
form.modal({appendTo:'#main'});
|
||||||
form.submit(function() {
|
$('#simplemodal-container').css({'height':'auto'});
|
||||||
var dirent_name = $.trim($('input[name="name"]', form).val());
|
|
||||||
if (!dirent_name) {
|
form.submit(function() {
|
||||||
//apply_form_error(form_id, "{% trans "It is required." %}");
|
var dirent_name = $.trim($('input[name="name"]', form).val()),
|
||||||
//apply_form_error(form_id, "It is required.");
|
post_data = {'dirent_name': dirent_name},
|
||||||
return false;
|
post_url = Common.getUrl({name: "new_dir", repo_id: dir.repo_id})
|
||||||
}
|
+ '?parent_dir=' + encodeURIComponent(dir.path);
|
||||||
var post_data = {'dirent_name': dirent_name};
|
|
||||||
var post_url = Common.getUrl({name: "new_dir", repo_id: dir.repo_id})
|
if (!dirent_name) {
|
||||||
+ '?parent_dir=' + encodeURIComponent(dir.path);
|
Common.showFormError(form_id, gettext("It is required."));
|
||||||
var after_op_success = function(data) {
|
return false;
|
||||||
$.modal.close();
|
};
|
||||||
var now = new Date().getTime()/1000;
|
|
||||||
var new_dirent = dir.add({
|
var after_op_success = function(data) {
|
||||||
'is_dir': true,
|
$.modal.close();
|
||||||
'obj_name': data['name'],
|
|
||||||
'last_modified': now,
|
var new_dirent = dir.add({
|
||||||
//'last_update': "{% trans "Just now" %}",
|
'is_dir': true,
|
||||||
'last_update': "Just now",
|
'obj_name': data['name'],
|
||||||
'p_dpath': data['p_dpath'],
|
'last_modified': new Date().getTime() / 1000,
|
||||||
}, {silent:true});
|
'last_update': gettext("Just now"),
|
||||||
var view = new DirentView({model: new_dirent, dirView: dirView});
|
'p_dpath': data['p_dpath']
|
||||||
$('tr:first', dirView.$dirent_list).before(view.render().el); // put the new dir as the first one
|
}, {silent:true});
|
||||||
};
|
|
||||||
Common.ajaxPost({
|
var view = new DirentView({model: new_dirent, dirView: dirView});
|
||||||
'form': form,
|
$('tr:first', dirView.$dirent_list).before(view.render().el); // put the new dir as the first one
|
||||||
'post_url': post_url,
|
};
|
||||||
'post_data': post_data,
|
|
||||||
'after_op_success': after_op_success,
|
Common.ajaxPost({
|
||||||
'form_id': form_id
|
'form': form,
|
||||||
|
'post_url': post_url,
|
||||||
|
'post_data': post_data,
|
||||||
|
'after_op_success': after_op_success,
|
||||||
|
'form_id': form_id
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
return false;
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
newFile: function() {
|
||||||
|
var form = $(this.newFileTemplate()),
|
||||||
|
form_id = form.attr('id'),
|
||||||
|
file_name = form.find('input[name="name"]'),
|
||||||
|
dir = this.dir,
|
||||||
|
dirView = this;
|
||||||
|
|
||||||
|
form.modal({appendTo:'#main'});
|
||||||
|
$('#simplemodal-container').css({'height':'auto'});
|
||||||
|
|
||||||
|
form.find('.set-file-type').on('click', function() {
|
||||||
|
file_name.val('.' + $(this).data('filetype'));
|
||||||
|
Common.setCaretPos(file_name[0], 0);
|
||||||
|
file_name.focus();
|
||||||
|
});
|
||||||
|
|
||||||
|
form.submit(function() {
|
||||||
|
var dirent_name = $.trim(file_name.val()),
|
||||||
|
post_data = {'dirent_name': dirent_name},
|
||||||
|
post_url = Common.getUrl({name: "new_file", repo_id: dir.repo_id})
|
||||||
|
+ '?parent_dir=' + encodeURIComponent(dir.path);
|
||||||
|
|
||||||
|
if (!dirent_name) {
|
||||||
|
Common.showFormError(form_id, gettext("It is required."));
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
var after_op_success = function(data) {
|
||||||
|
location.href = Common.getUrl({name: "repo_new_file", repo_id: dir.repo_id})
|
||||||
|
+ '?p=' + encodeURIComponent(dir.path) + encodeURIComponent(data['name']);
|
||||||
|
};
|
||||||
|
|
||||||
|
Common.ajaxPost({
|
||||||
|
'form': form,
|
||||||
|
'post_url': post_url,
|
||||||
|
'post_data': post_data,
|
||||||
|
'after_op_success': after_op_success,
|
||||||
|
'form_id': form_id
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return DirView;
|
return DirView;
|
||||||
|
@@ -53,6 +53,7 @@ define([
|
|||||||
case 'cp_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/cp/';
|
case 'cp_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/cp/';
|
||||||
case 'new_dir': return siteRoot + 'ajax/repo/' + options.repo_id + '/dir/new/';
|
case 'new_dir': return siteRoot + 'ajax/repo/' + options.repo_id + '/dir/new/';
|
||||||
case 'new_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/new/';
|
case 'new_file': return siteRoot + 'ajax/repo/' + options.repo_id + '/file/new/';
|
||||||
|
case 'repo_new_file': return siteRoot + 'repo/' + options.repo_id + '/files/';
|
||||||
case 'del_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/delete/';
|
case 'del_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/delete/';
|
||||||
case 'mv_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/move/';
|
case 'mv_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/move/';
|
||||||
case 'cp_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/copy/';
|
case 'cp_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/copy/';
|
||||||
@@ -118,6 +119,17 @@ define([
|
|||||||
btn.attr('disabled', 'disabled').addClass('btn-disabled');
|
btn.attr('disabled', 'disabled').addClass('btn-disabled');
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setCaretPos: function(inputor, pos) {
|
||||||
|
var range;
|
||||||
|
if (document.selection) {
|
||||||
|
range = inputor.createTextRange();
|
||||||
|
range.move("character", pos);
|
||||||
|
return range.select();
|
||||||
|
} else {
|
||||||
|
return inputor.setSelectionRange(pos, pos);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
prepareCSRFToken: function(xhr, settings) {
|
prepareCSRFToken: function(xhr, settings) {
|
||||||
function getCookie(name) {
|
function getCookie(name) {
|
||||||
var cookieValue = null;
|
var cookieValue = null;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
|
<script type="text/template" id="add-new-dir-form-template">
|
||||||
<form id="add-new-dir-form" action="" method="post" class="hide">{% csrf_token %}
|
<form id="add-new-dir-form" action="" method="post" class="hide">{% csrf_token %}
|
||||||
<h3>{% trans "New Directory" %}</h3>
|
<h3>{% trans "New Directory" %}</h3>
|
||||||
<label>{% trans "Directory Name" %}</label><br />
|
<label>{% trans "Directory Name" %}</label><br />
|
||||||
@@ -8,7 +9,9 @@
|
|||||||
<button type="submit" class="submit">{% trans "Submit" %}</button>
|
<button type="submit" class="submit">{% trans "Submit" %}</button>
|
||||||
<button class="simplemodal-close">{% trans "Cancel" %}</button>
|
<button class="simplemodal-close">{% trans "Cancel" %}</button>
|
||||||
</form>
|
</form>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script type="text/template" id="add-new-file-form-template">
|
||||||
<form id="add-new-file-form" action="" method="post" class="hide">{% csrf_token %}
|
<form id="add-new-file-form" action="" method="post" class="hide">{% csrf_token %}
|
||||||
<h3>{% trans "New File" %}</h3>
|
<h3>{% trans "New File" %}</h3>
|
||||||
<div id="featured-filetype">
|
<div id="featured-filetype">
|
||||||
@@ -32,6 +35,7 @@
|
|||||||
<button type="submit" class="submit">{% trans "Submit" %}</button>
|
<button type="submit" class="submit">{% trans "Submit" %}</button>
|
||||||
<button class="simplemodal-close">{% trans "Cancel" %}</button>
|
<button class="simplemodal-close">{% trans "Cancel" %}</button>
|
||||||
</form>
|
</form>
|
||||||
|
</script>
|
||||||
|
|
||||||
<script type="text/template" id="rename-form-template">
|
<script type="text/template" id="rename-form-template">
|
||||||
<form id="rename-form" action="" method="post" class="hide">{% csrf_token %}
|
<form id="rename-form" action="" method="post" class="hide">{% csrf_token %}
|
||||||
|
Reference in New Issue
Block a user