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

[fileupload] use dropdown

This commit is contained in:
llj
2016-04-18 11:57:55 +08:00
parent 3867c1416c
commit 32375abcb6
4 changed files with 24 additions and 30 deletions

View File

@@ -2098,7 +2098,7 @@ button.dropdown-toggle:focus {
} }
#upload-menu .item { #upload-menu .item {
position:relative; position:relative;
text-align:left; white-space:nowrap;
overflow:hidden; /* for 'hover', as long 'input' in it. */ overflow:hidden; /* for 'hover', as long 'input' in it. */
} }
.fixed-upload-file-dialog { .fixed-upload-file-dialog {

View File

@@ -105,16 +105,19 @@
<input type="file" name="file" multiple /> <input type="file" name="file" multiple />
</div> </div>
<% if (enable_upload_folder) { %> <% if (enable_upload_folder) { %>
<ul id="upload-menu" class="hide"> <div id="advanced-upload" class="dropdown dropdown-inline" style="display:none;">
<li class="item"> <button class="dropdown-toggle op-btn">{% trans "Upload" %}</button>
<span>{% trans "Upload Files" %}</span> <ul id="upload-menu" class="dropdown-menu hide">
<input type="file" name="file" multiple /> <li class="item">
</li> <span>{% trans "Upload Files" %}</span>
<li class="item"> <input type="file" name="file" multiple />
<span>{% trans "Upload Folder" %}</span> </li>
<input type="file" name="file" multiple directory webkitdirectory /> <li class="item">
</li> <span>{% trans "Upload Folder" %}</span>
</ul> <input type="file" name="file" multiple directory webkitdirectory />
</li>
</ul>
</div>
<% } %> <% } %>
<button id="add-new-dir" class="op-btn">{% trans "New Folder" %}</button> <button id="add-new-dir" class="op-btn">{% trans "New Folder" %}</button>
<button id="add-new-file" class="op-btn">{% trans "New File" %}</button> <button id="add-new-file" class="op-btn">{% trans "New File" %}</button>

View File

@@ -12,10 +12,11 @@ define([
'app/views/dirent', 'app/views/dirent',
'app/views/dirent-grid', 'app/views/dirent-grid',
'app/views/fileupload', 'app/views/fileupload',
'app/views/share' 'app/views/share',
'app/views/widgets/dropdown'
], function($, progressbar, magnificPopup, simplemodal, _, Backbone, Common, ], function($, progressbar, magnificPopup, simplemodal, _, Backbone, Common,
FileTree, Cookies, DirentCollection, DirentView, DirentGridView, FileTree, Cookies, DirentCollection, DirentView, DirentGridView,
FileUploadView, ShareView) { FileUploadView, ShareView, DropdownView) {
'use strict'; 'use strict';
var DirView = Backbone.View.extend({ var DirView = Backbone.View.extend({
@@ -205,6 +206,10 @@ define([
this.render_dirents_slice(this.dir.last_start, this.dir.limit); this.render_dirents_slice(this.dir.last_start, this.dir.limit);
this.fileUploadView.setFileInput(); this.fileUploadView.setFileInput();
this.upload_dropdown = new DropdownView({
el: this.$('#advanced-upload')
});
this.getImageThumbnail(); this.getImageThumbnail();
}, },

View File

@@ -422,15 +422,6 @@ define([
window.location.href.replace(/\/repo\/[-a-z0-9]{36}\/.*/, app.config.mediaUrl + 'cors/result.html?%s') window.location.href.replace(/\/repo\/[-a-z0-9]{36}\/.*/, app.config.mediaUrl + 'cors/result.html?%s')
); );
$(document).click(function(e) {
var target = e.target || event.srcElement;
var closePopup = function(popup, popup_switch) {
if (!popup.hasClass('hide') && !popup.is(target) && !popup.find('*').is(target) && !popup_switch.is(target) && !popup_switch.find('*').is(target) ) {
popup.addClass('hide');
}
};
closePopup(dirView.$('#upload-menu'), dirView.$('#upload-file'));
});
}, },
events: { events: {
@@ -476,7 +467,9 @@ define([
if (dir.user_perm && dir.user_perm == 'rw' && if (dir.user_perm && dir.user_perm == 'rw' &&
'webkitdirectory' in $('input[type="file"]', upload_btn)[0]) { 'webkitdirectory' in $('input[type="file"]', upload_btn)[0]) {
upload_btn.find('input').remove().end().addClass('cspt'); upload_btn.remove();
$('#advanced-upload').removeAttr('style'); // show it
$('.item', upload_menu).click(function() { $('.item', upload_menu).click(function() {
popup.fileupload( popup.fileupload(
'option', 'option',
@@ -492,13 +485,6 @@ define([
$(this).css({'background':'transparent'}); $(this).css({'background':'transparent'});
} }
); );
upload_btn.click(function () {
upload_menu.toggleClass('hide');
upload_menu.css({
'left': upload_btn.position().left,
'top': parseInt(dirView.$('.repo-op').css('padding-top')) + upload_btn.outerHeight(true)
});
});
} }
} }
}); });