1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-09 10:50:24 +00:00

[lib] modified new dir/file

This commit is contained in:
llj
2015-02-07 16:50:33 +08:00
committed by Daniel Pan
parent 1e3a18f6c9
commit 13d5730684
6 changed files with 148 additions and 82 deletions

View File

@@ -123,7 +123,8 @@ define([
user_perm: user_perm,
encrypted: dir.encrypted,
path: dir.path,
repo_id: dir.repo_id
repo_id: dir.repo_id,
enable_upload_folder: app.globalState.enable_upload_folder
})));
},
@@ -152,16 +153,16 @@ define([
$('#simplemodal-container').css({'height':'auto'});
form.submit(function() {
var dirent_name = $.trim($('input[name="name"]', form).val()),
post_data = {'dirent_name': dirent_name},
post_url = Common.getUrl({name: "new_dir", repo_id: dir.repo_id})
+ '?parent_dir=' + encodeURIComponent(dir.path);
var dirent_name = $.trim($('input[name="name"]', form).val());
if (!dirent_name) {
Common.showFormError(form_id, gettext("It is required."));
return false;
};
var post_data = {'dirent_name': dirent_name},
post_url = Common.getUrl({name: "new_dir", repo_id: dir.repo_id})
+ '?parent_dir=' + encodeURIComponent(dir.path);
var after_op_success = function(data) {
$.modal.close();
@@ -174,7 +175,7 @@ define([
}, {silent:true});
var view = new DirentView({model: new_dirent, dirView: dirView});
$('tr:first', dirView.$dirent_list).before(view.render().el); // put the new dir as the first one
dirView.$dirent_list.prepend(view.render().el); // put the new dir as the first one
};
Common.ajaxPost({
@@ -196,29 +197,64 @@ define([
dir = this.dir,
dirView = this;
form.modal({appendTo:'#main'});
form.modal({
appendTo: '#main',
focus: false,
containerCss: {'padding':'20px 25px'}
});
$('#simplemodal-container').css({'height':'auto'});
form.find('.set-file-type').on('click', function() {
$('.set-file-type', form).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);
var dirent_name = $.trim(file_name.val());
if (!dirent_name) {
Common.showFormError(form_id, gettext("It is required."));
return false;
};
// if it has an extension, make sure it has a name
if (dirent_name.lastIndexOf('.') != -1 && dirent_name.substr(0, dirent_name.lastIndexOf('.')).length == 0) {
Common.showFormError(form_id, gettext("Only an extension there, please input a name."));
return false;
}
var post_data = {'dirent_name': dirent_name},
post_url = Common.getUrl({name: "new_file", repo_id: dir.repo_id})
+ '?parent_dir=' + encodeURIComponent(dir.path);
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']);
$.modal.close();
var new_dirent = dir.add({
'is_file': true,
'obj_name': data['name'],
'file_size': Common.fileSizeFormat(0),
'obj_id': '0000000000000000000000000000000000000000',
'file_icon': 'file.png',
'starred': false,
'last_modified': new Date().getTime() / 1000,
'last_update': gettext("Just now"),
'sharelink': '',
'sharetoken': ''
}, {silent: true});
var view = new DirentView({model: new_dirent, dirView: dirView});
var new_file = view.render().el;
// put the new file as the first file
if ($('tr', dirView.$dirent_list).length == 0) {
dirView.$dirent_list.append(new_file);
} else {
var dirs = dir.where({'is_dir':true});
if (dirs.length == 0) {
dirView.$dirent_list.prepend(new_file);
} else {
// put the new file after the last dir
$($('tr', dirView.$dirent_list)[dirs.length - 1]).after(new_file);
}
}
};
Common.ajaxPost({

View File

@@ -53,7 +53,6 @@ define([
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_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 'mv_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/move/';
case 'cp_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/copy/';
@@ -207,7 +206,7 @@ define([
});
},
HTMLescape: function(html){
HTMLescape: function(html) {
return document.createElement('div')
.appendChild(document.createTextNode(html))
.parentNode
@@ -223,6 +222,34 @@ define([
result += '/' + array[i];
}
return result;
},
fileSizeFormat: function (bytes, precision) {
var kilobyte = 1024;
var megabyte = kilobyte * 1024;
var gigabyte = megabyte * 1024;
var terabyte = gigabyte * 1024;
var precision = precision || 0;
if ((bytes >= 0) && (bytes < kilobyte)) {
return bytes + ' B';
} else if ((bytes >= kilobyte) && (bytes < megabyte)) {
return (bytes / kilobyte).toFixed(precision) + ' KB';
} else if ((bytes >= megabyte) && (bytes < gigabyte)) {
return (bytes / megabyte).toFixed(precision) + ' MB';
} else if ((bytes >= gigabyte) && (bytes < terabyte)) {
return (bytes / gigabyte).toFixed(precision) + ' GB';
} else if (bytes >= terabyte) {
return (bytes / terabyte).toFixed(precision) + ' TB';
} else {
return bytes + ' B';
}
}
}

View File

@@ -4,7 +4,7 @@
<span>{% trans "Upload" %}</span>
<input type="file" name="file" multiple />
</div>
{% if enable_upload_folder %}
<% if (enable_upload_folder) { %>
<ul id="upload-menu" class="hide">
<li class="item">
<span>{% trans "Upload Files" %}</span>
@@ -15,7 +15,7 @@
<input type="file" name="file" multiple directory webkitdirectory />
</li>
</ul>
{% endif %}
<% } %>
<button id="add-new-dir" class="op-btn">{% trans "New Directory" %}</button>
<button id="add-new-file" class="op-btn">{% trans "New File" %}</button>
<% } %>

View File

@@ -226,7 +226,9 @@ app["pageOptions"] = {
csrfToken: "{{ csrf_token }}",
reposUrl: "{% url 'api2-repos' %}"
};
app.globalState = {};
app.globalState = {
enable_upload_folder: {% if enable_upload_folder %} true {% else %} false {% endif %}
};
</script>
<script type="text/javascript" data-main="{{ MEDIA_URL }}scripts/myhome" src="{{ MEDIA_URL }}scripts/lib/require.js"></script>
{% endblock %}

View File

@@ -1175,6 +1175,7 @@ def myhome(request):
"sub_lib_enabled": sub_lib_enabled,
"sub_repos": sub_repos,
"repo_create_url": repo_create_url,
'enable_upload_folder': settings.ENABLE_UPLOAD_FOLDER,
}, context_instance=RequestContext(request))
@login_required