aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2012-12-11 23:57:59 +0100
committerRobin Appelman <icewind@owncloud.com>2012-12-11 23:57:59 +0100
commit7969d6e64617235744889df42d0e671085a779a8 (patch)
tree23733e41a7d58cb2903429e3dfb417327c39d835 /apps/files
parentcc0a0df88b3b6fdd2b1f9c85349683eb640f9670 (diff)
parentf7f462f2733117cc2e3be0421e7ebca85bac1562 (diff)
downloadnextcloud-server-7969d6e64617235744889df42d0e671085a779a8.tar.gz
nextcloud-server-7969d6e64617235744889df42d0e671085a779a8.zip
Merge branch 'master' into filesystem
Diffstat (limited to 'apps/files')
-rw-r--r--apps/files/css/files.css81
-rw-r--r--apps/files/index.php1
-rw-r--r--apps/files/js/filelist.js2
-rw-r--r--apps/files/js/files.js29
-rw-r--r--apps/files/js/keyboardshortcuts.js165
-rw-r--r--apps/files/l10n/es_AR.php2
-rw-r--r--apps/files/l10n/ko.php63
-rw-r--r--apps/files/l10n/sl.php1
-rw-r--r--apps/files/templates/index.php27
9 files changed, 278 insertions, 93 deletions
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 0b886fc3fa9..9bd92c92580 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -4,40 +4,65 @@
/* FILE MENU */
.actions { padding:.3em; float:left; height:2em; }
-.actions input, .actions button, .actions .button { margin:0; }
-#file_menu { right:0; position:absolute; top:0; }
-#file_menu a { display:block; float:left; background-image:none; text-decoration:none; }
-.file_upload_form, #file_newfolder_form { display:inline; float: left; margin-left:0; }
-#fileSelector, #file_upload_submit, #file_newfolder_submit { display:none; }
-.file_upload_wrapper, #file_newfolder_name { background-repeat:no-repeat; background-position:.5em .5em; padding-left:2em; }
-.file_upload_wrapper { font-weight:bold; display:-moz-inline-box; /* fallback for older firefox versions*/ display:block; float:left; padding-left:0; overflow:hidden; position:relative; margin:0; margin-left:2px; }
-.file_upload_wrapper .file_upload_button_wrapper { position:absolute; top:0; left:0; width:100%; height:100%; cursor:pointer; z-index:1000; }
-#new { background-color:#5bb75b; float:left; margin:0 0 0 1em; border-right:none; z-index:1010; height:1.3em; }
-#new:hover, a.file_upload_button_wrapper:hover + button.file_upload_filename { background-color:#4b964b; }
+.actions input, .actions button, .actions .button { margin:0; float:left; }
+
+#new {
+ height:17px; margin:0 0 0 1em; z-index:1010; float:left;
+ background-color:#5bb75b;
+ border:1px solid; border-color:#51a351 #419341 #387038;
+ -moz-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset;
+ -webkit-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset;
+ box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset;
+}
+#new:hover, #upload:hover { background-color:#4b964b; }
#new.active { border-bottom-left-radius:0; border-bottom-right-radius:0; border-bottom:none; }
#new>a { padding:.5em 1.2em .3em; color:#fff; text-shadow:0 1px 0 #51a351; }
-#new>ul { display:none; position:fixed; text-align:left; padding:.5em; background:#f8f8f8; margin-top:0.075em; border:1px solid #ddd; min-width:7em; margin-left:-.5em; z-index:-1; }
-#new>ul>li { margin:.3em; padding-left:2em; background-repeat:no-repeat; cursor:pointer; padding-bottom:0.1em }
+#new>ul {
+ display:none; position:fixed; min-width:7em; z-index:-1;
+ padding:.5em; margin-top:0.075em; margin-left:-.5em;
+ text-align:left;
+ background:#f8f8f8; border:1px solid #ddd;
+}
+#new>ul>li { height:20px; margin:.3em; padding-left:2em; padding-bottom:0.1em;
+ background-repeat:no-repeat; cursor:pointer; }
#new>ul>li>p { cursor:pointer; }
#new>ul>li>input { padding:0.3em; margin:-0.3em; }
-#new, .file_upload_filename { border:1px solid; border-color:#51a351 #419341 #387038; -moz-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; }
#new .popup { border-top-left-radius:0; z-index:10; }
-#file_newfolder_name { background-image:url('%webroot%/core/img/places/folder.svg'); font-weight:normal; width:7em; }
-.file_upload_start, .file_upload_filename { font-size:1em; }
-#file_newfolder_submit, #file_upload_submit { width:3em; }
+#upload {
+ height:27px; padding:0; margin-left:0.2em; overflow:hidden;
+ color:#fff; text-shadow:0 1px 0 #51a351;
+ border-color:#51a351 #419341 #387038;
+ box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset;
+ background-color:#5bb75b;
+}
+#upload a {
+ position:relative; display:block; width:100%; height:27px;
+ cursor:pointer; z-index:1000;
+ background-image:url('%webroot%/core/img/actions/upload-white.svg');
+ background-repeat:no-repeat;
+ background-position:7px 6px;
+}
.file_upload_target { display:none; }
+.file_upload_form { display:inline; float:left; margin:0; padding:0; cursor:pointer; overflow:visible; }
+#file_upload_start {
+ left:0; top:0; width:28px; height:27px; padding:0;
+ font-size:1em;
+ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0;
+ z-index:-1; position:relative; cursor:pointer; overflow:hidden;
+}
-.file_upload_start { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; z-index:1; position:absolute; left:0; top:0; width:100%; cursor:pointer;}
-.file_upload_filename { background-color:#5bb75b; z-index:100; cursor:pointer; background-image: url('%webroot%/core/img/actions/upload-white.svg'); background-repeat: no-repeat; background-position: center; height: 2.29em; width: 2.5em; }
-
-#upload { position:absolute; right:13.5em; top:0em; }
-#upload #uploadprogressbar { position:relative; display:inline-block; width:10em; height:1.5em; top:.4em; }
-
-.file_upload_form, .file_upload_wrapper, .file_upload_start, .file_upload_filename, #file_upload_submit { cursor:pointer; }
+#uploadprogresswrapper { position:absolute; right:13.5em; top:0em; }
+#uploadprogresswrapper #uploadprogressbar { position:relative; display:inline-block; width:10em; height:1.5em; top:.4em; }
/* FILE TABLE */
-#emptyfolder { position:absolute; margin:10em 0 0 10em; font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; }
+
+#emptyfolder {
+ position:absolute;
+ margin:10em 0 0 10em;
+ font-size:1.5em; font-weight:bold;
+ color:#888; text-shadow:#fff 0 1px 0;
+}
table { position:relative; top:37px; width:100%; }
tbody tr { background-color:#fff; height:2.5em; }
tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#f8f8f8; }
@@ -60,13 +85,13 @@ table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; }
table td.filename input.filename { width:100%; cursor:text; }
table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 0; }
table td.filename .nametext, .uploadtext, .modified { float:left; padding:.3em 0; }
-// TODO fix usability bug (accidental file/folder selection)
-table td.filename .nametext { width:40em; overflow:hidden; text-overflow:ellipsis; }
+/* TODO fix usability bug (accidental file/folder selection) */
+table td.filename .nametext { overflow:hidden; text-overflow:ellipsis; }
table td.filename .uploadtext { font-weight:normal; margin-left:.5em; }
table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; }
table thead.fixed tr{ position:fixed; top:6.5em; z-index:49; -moz-box-shadow:0 -3px 7px #ddd; -webkit-box-shadow:0 -3px 7px #ddd; box-shadow:0 -3px 7px #ddd; }
table thead.fixed { height:2em; }
-#fileList tr td.filename>input[type=checkbox]:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ -webkit-transition:opacity 200ms; -moz-transition:opacity 200ms; -o-transition:opacity 200ms; transition:opacity 200ms; }
+#fileList tr td.filename>input[type="checkbox"]:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ -webkit-transition:opacity 200ms; -moz-transition:opacity 200ms; -o-transition:opacity 200ms; transition:opacity 200ms; }
#fileList tr td.filename>input[type="checkbox"]:hover:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; filter:alpha(opacity=80); opacity:.8; }
#fileList tr td.filename>input[type="checkbox"]:checked:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; }
#fileList tr td.filename { -webkit-transition:background-image 500ms; -moz-transition:background-image 500ms; -o-transition:background-image 500ms; transition:background-image 500ms; position:relative; }
@@ -87,4 +112,4 @@ a.action>img { max-height:16px; max-width:16px; vertical-align:text-bottom; }
#scanning-message{ top:40%; left:40%; position:absolute; display:none; }
-div.crumb a{ padding: 0.9em 0 0.7em 0; }
+div.crumb a{ padding:0.9em 0 0.7em 0; }
diff --git a/apps/files/index.php b/apps/files/index.php
index a88e1f00741..173cef791d3 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -31,6 +31,7 @@ OCP\Util::addscript( 'files', 'jquery.fileupload' );
OCP\Util::addscript( 'files', 'files' );
OCP\Util::addscript( 'files', 'filelist' );
OCP\Util::addscript( 'files', 'fileactions' );
+OCP\Util::addscript( 'files', 'keyboardshortcuts' );
if(!isset($_SESSION['timezone'])) {
OCP\Util::addscript( 'files', 'timezone' );
}
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 5674206632b..9f0bafafbdf 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -89,7 +89,6 @@ var FileList={
$('tr').filterAttr('data-file',name).remove();
if($('tr[data-file]').length==0){
$('#emptyfolder').show();
- $('.file_upload_filename').addClass('highlight');
}
},
insertElement:function(name,type,element){
@@ -118,7 +117,6 @@ var FileList={
$('#fileList').append(element);
}
$('#emptyfolder').hide();
- $('.file_upload_filename').removeClass('highlight');
},
loadingDone:function(name, id){
var mime, tr=$('tr').filterAttr('data-file',name);
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 7c6d4fd3ee5..3f25e3bb3a3 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -40,15 +40,12 @@ Files={
}
};
$(document).ready(function() {
+ Files.bindKeyboardShortcuts(document, jQuery);
$('#fileList tr').each(function(){
//little hack to set unescape filenames in attribute
$(this).attr('data-file',decodeURIComponent($(this).attr('data-file')));
});
- if($('tr[data-file]').length==0){
- $('.file_upload_filename').addClass('highlight');
- }
-
$('#file_action_panel').attr('activeAction', false);
//drag/drop of files
@@ -69,8 +66,8 @@ $(document).ready(function() {
}
// Triggers invisible file input
- $('.file_upload_button_wrapper').live('click', function() {
- $(this).parent().children('.file_upload_start').trigger('click');
+ $('#upload a').live('click', function() {
+ $(this).parent().children('#file_upload_start').trigger('click');
return false;
});
@@ -171,12 +168,6 @@ $(document).ready(function() {
procesSelection();
});
- $('#file_newfolder_name').click(function(){
- if($('#file_newfolder_name').val() == 'New Folder'){
- $('#file_newfolder_name').val('');
- }
- });
-
$('.download').click('click',function(event) {
var files=getSelectedFiles('name').join(';');
var dir=$('#dir').val()||'/';
@@ -204,9 +195,9 @@ $(document).ready(function() {
e.preventDefault(); // prevent browser from doing anything, if file isn't dropped in dropZone
});
- if ( document.getElementById("data-upload-form") ) {
+ if ( document.getElementById('data-upload-form') ) {
$(function() {
- $('.file_upload_start').fileupload({
+ $('#file_upload_start').fileupload({
dropZone: $('#content'), // restrict dropZone to content div
add: function(e, data) {
var files = data.files;
@@ -221,7 +212,7 @@ $(document).ready(function() {
totalSize+=files[i].size;
if(FileList.deleteFiles && FileList.deleteFiles.indexOf(files[i].name)!=-1){//finish delete if we are uploading a deleted file
FileList.finishDelete(function(){
- $('.file_upload_start').change();
+ $('#file_upload_start').change();
});
return;
}
@@ -295,7 +286,7 @@ $(document).ready(function() {
var dropTarget = $(e.originalEvent.target).closest('tr');
if(dropTarget && dropTarget.attr('data-type') === 'dir') { // drag&drop upload to folder
var dirName = dropTarget.attr('data-file')
- var jqXHR = $('.file_upload_start').fileupload('send', {files: files[i],
+ var jqXHR = $('#file_upload_start').fileupload('send', {files: files[i],
formData: function(form) {
var formArray = form.serializeArray();
// array index 0 contains the max files size
@@ -356,7 +347,7 @@ $(document).ready(function() {
}
uploadingFiles[dirName][fileName] = jqXHR;
} else {
- var jqXHR = $('.file_upload_start').fileupload('send', {files: files[i]})
+ var jqXHR = $('#file_upload_start').fileupload('send', {files: files[i]})
.success(function(result, textStatus, jqXHR) {
var response;
response=jQuery.parseJSON(result);
@@ -453,7 +444,7 @@ $(document).ready(function() {
//add multiply file upload attribute to all browsers except konqueror (which crashes when it's used)
if(navigator.userAgent.search(/konqueror/i)==-1){
- $('.file_upload_start').attr('multiple','multiple')
+ $('#file_upload_start').attr('multiple','multiple')
}
//if the breadcrumb is to long, start by replacing foldernames with '...' except for the current folder
@@ -481,7 +472,6 @@ $(document).ready(function() {
$(window).click(function(){
$('#new>ul').hide();
$('#new').removeClass('active');
- $('button.file_upload_filename').removeClass('active');
$('#new li').each(function(i,element){
if($(element).children('p').length==0){
$(element).children('input').remove();
@@ -495,7 +485,6 @@ $(document).ready(function() {
$('#new>a').click(function(){
$('#new>ul').toggle();
$('#new').toggleClass('active');
- $('button.file_upload_filename').toggleClass('active');
});
$('#new li').click(function(){
if($(this).children('p').length==0){
diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js
new file mode 100644
index 00000000000..562755f55b7
--- /dev/null
+++ b/apps/files/js/keyboardshortcuts.js
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2012 Erik Sargent <esthepiking at gmail dot com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ */
+/*****************************
+ * Keyboard shortcuts for Files app
+ * ctrl/cmd+n: new folder
+ * ctrl/cmd+shift+n: new file
+ * esc (while new file context menu is open): close menu
+ * up/down: select file/folder
+ * enter: open file/folder
+ * delete/backspace: delete file/folder
+ *****************************/
+var Files = Files || {};
+(function(Files) {
+ var keys = [];
+ var keyCodes = {
+ shift: 16,
+ n: 78,
+ cmdFirefox: 224,
+ cmdOpera: 17,
+ leftCmdWebKit: 91,
+ rightCmdWebKit: 93,
+ ctrl: 17,
+ esc: 27,
+ downArrow: 40,
+ upArrow: 38,
+ enter: 13,
+ del: 46
+ };
+
+ function removeA(arr) {
+ var what, a = arguments,
+ L = a.length,
+ ax;
+ while (L > 1 && arr.length) {
+ what = a[--L];
+ while ((ax = arr.indexOf(what)) !== -1) {
+ arr.splice(ax, 1);
+ }
+ }
+ return arr;
+ }
+
+ function newFile() {
+ $("#new").addClass("active");
+ $(".popup.popupTop").toggle(true);
+ $('#new li[data-type="file"]').trigger('click');
+ removeA(keys, keyCodes.n);
+ }
+
+ function newFolder() {
+ $("#new").addClass("active");
+ $(".popup.popupTop").toggle(true);
+ $('#new li[data-type="folder"]').trigger('click');
+ removeA(keys, keyCodes.n);
+ }
+
+ function esc() {
+ $("#controls").trigger('click');
+ }
+
+ function down() {
+ var select = -1;
+ $("#fileList tr").each(function(index) {
+ if ($(this).hasClass("mouseOver")) {
+ select = index + 1;
+ $(this).removeClass("mouseOver");
+ }
+ });
+ if (select === -1) {
+ $("#fileList tr:first").addClass("mouseOver");
+ } else {
+ $("#fileList tr").each(function(index) {
+ if (index === select) {
+ $(this).addClass("mouseOver");
+ }
+ });
+ }
+ }
+
+ function up() {
+ var select = -1;
+ $("#fileList tr").each(function(index) {
+ if ($(this).hasClass("mouseOver")) {
+ select = index - 1;
+ $(this).removeClass("mouseOver");
+ }
+ });
+ if (select === -1) {
+ $("#fileList tr:last").addClass("mouseOver");
+ } else {
+ $("#fileList tr").each(function(index) {
+ if (index === select) {
+ $(this).addClass("mouseOver");
+ }
+ });
+ }
+ }
+
+ function enter() {
+ $("#fileList tr").each(function(index) {
+ if ($(this).hasClass("mouseOver")) {
+ $(this).removeClass("mouseOver");
+ $(this).find("span.nametext").trigger('click');
+ }
+ });
+ }
+
+ function del() {
+ $("#fileList tr").each(function(index) {
+ if ($(this).hasClass("mouseOver")) {
+ $(this).removeClass("mouseOver");
+ $(this).find("a.action.delete").trigger('click');
+ }
+ });
+ }
+
+ function rename() {
+ $("#fileList tr").each(function(index) {
+ if ($(this).hasClass("mouseOver")) {
+ $(this).removeClass("mouseOver");
+ $(this).find("a[data-action='Rename']").trigger('click');
+ }
+ });
+ }
+ Files.bindKeyboardShortcuts = function(document, $) {
+ $(document).keydown(function(event) { //check for modifier keys
+ var preventDefault = false;
+ if ($.inArray(event.keyCode, keys) === -1) keys.push(event.keyCode);
+ if (
+ $.inArray(keyCodes.n, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1 || event.ctrlKey)) {
+ preventDefault = true; //new file/folder prevent browser from responding
+ }
+ if (preventDefault) {
+ event.preventDefault(); //Prevent web browser from responding
+ event.stopPropagation();
+ return false;
+ }
+ });
+ $(document).keyup(function(event) {
+ // do your event.keyCode checks in here
+ if (
+ $.inArray(keyCodes.n, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1 || event.ctrlKey)) {
+ if ($.inArray(keyCodes.shift, keys) !== -1) { //16=shift, New File
+ newFile();
+ } else { //New Folder
+ newFolder();
+ }
+ } else if ($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1) { //close new window
+ esc();
+ } else if ($.inArray(keyCodes.downArrow, keys) !== -1) { //select file
+ down();
+ } else if ($.inArray(keyCodes.upArrow, keys) !== -1) { //select file
+ up();
+ } else if (!$("#new").hasClass("active") && $.inArray(keyCodes.enter, keys) !== -1) { //open file
+ enter();
+ } else if (!$("#new").hasClass("active") && $.inArray(keyCodes.del, keys) !== -1) { //delete file
+ del();
+ }
+ removeA(keys, event.keyCode);
+ });
+ };
+})(Files); \ No newline at end of file
diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php
index 5c7ca37387b..e514d8de59a 100644
--- a/apps/files/l10n/es_AR.php
+++ b/apps/files/l10n/es_AR.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
"There is no error, the file uploaded with success" => "No se han producido errores, el archivo se ha subido con éxito",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentás subir excede el tamaño definido por upload_max_filesize en el php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo que intentás subir sobrepasa el tamaño definido por la variable MAX_FILE_SIZE especificada en el formulario HTML",
"The uploaded file was only partially uploaded" => "El archivo que intentás subir solo se subió parcialmente",
"No file was uploaded" => "El archivo no fue subido",
@@ -18,6 +19,7 @@
"replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}",
"unshared {files}" => "{files} se dejaron de compartir",
"deleted {files}" => "{files} borrados",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no están permitidos.",
"generating ZIP-file, it may take some time." => "generando un archivo ZIP, puede llevar un tiempo.",
"Unable to upload your file as it is a directory or has 0 bytes" => "No fue posible subir el archivo porque es un directorio o porque su tamaño es 0 bytes",
"Upload Error" => "Error al subir el archivo",
diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php
index 0e2e542678f..4b5d57dff92 100644
--- a/apps/files/l10n/ko.php
+++ b/apps/files/l10n/ko.php
@@ -1,59 +1,62 @@
<?php $TRANSLATIONS = array(
"There is no error, the file uploaded with success" => "업로드에 성공하였습니다.",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "업로드한 파일이 HTML 문서에 지정한 MAX_FILE_SIZE보다 더 큼",
"The uploaded file was only partially uploaded" => "파일이 부분적으로 업로드됨",
"No file was uploaded" => "업로드된 파일 없음",
"Missing a temporary folder" => "임시 폴더가 사라짐",
"Failed to write to disk" => "디스크에 쓰지 못했습니다",
"Files" => "파일",
-"Unshare" => "공유해제",
+"Unshare" => "공유 해제",
"Delete" => "삭제",
-"Rename" => "이름변경",
-"{new_name} already exists" => "{new_name} 이미 존재함",
-"replace" => "대체",
-"suggest name" => "이름을 제안",
+"Rename" => "이름 바꾸기",
+"{new_name} already exists" => "{new_name}이(가) 이미 존재함",
+"replace" => "바꾸기",
+"suggest name" => "이름 제안",
"cancel" => "취소",
-"replaced {new_name}" => "{new_name} 으로 대체",
-"undo" => "복구",
-"replaced {new_name} with {old_name}" => "{old_name}이 {new_name}으로 대체됨",
-"unshared {files}" => "{files} 공유해제",
+"replaced {new_name}" => "{new_name}을(를) 대체함",
+"undo" => "실행 취소",
+"replaced {new_name} with {old_name}" => "{old_name}이(가) {new_name}(으)로 대체됨",
+"unshared {files}" => "{files} 공유 해제됨",
"deleted {files}" => "{files} 삭제됨",
-"generating ZIP-file, it may take some time." => "ZIP파일 생성에 시간이 걸릴 수 있습니다.",
-"Unable to upload your file as it is a directory or has 0 bytes" => "이 파일은 디렉토리이거나 0 바이트이기 때문에 업로드 할 수 없습니다.",
-"Upload Error" => "업로드 에러",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "폴더 이름이 올바르지 않습니다. 이름에 문자 '\\', '/', '<', '>', ':', '\"', '|', '? ', '*'는 사용할 수 없습니다.",
+"generating ZIP-file, it may take some time." => "ZIP 파일을 생성하고 있습니다. 시간이 걸릴 수도 있습니다.",
+"Unable to upload your file as it is a directory or has 0 bytes" => "이 파일은 디렉터리이거나 비어 있기 때문에 업로드할 수 없습니다",
+"Upload Error" => "업로드 오류",
"Close" => "닫기",
"Pending" => "보류 중",
-"1 file uploading" => "1 파일 업로드중",
-"{count} files uploading" => "{count} 파일 업로드중",
-"Upload cancelled." => "업로드 취소.",
-"File upload is in progress. Leaving the page now will cancel the upload." => "파일 업로드을 진행합니다. 페이지를 떠나게 될경우 업로드가 취소됩니다.",
-"{count} files scanned" => "{count} 파일 스캔되었습니다.",
-"error while scanning" => "스캔하는 도중 에러",
+"1 file uploading" => "파일 1개 업로드 중",
+"{count} files uploading" => "파일 {count}개 업로드 중",
+"Upload cancelled." => "업로드가 취소되었습니다.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.",
+"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "폴더 이름이 올바르지 않습니다. \"Shared\" 폴더는 ownCloud에서 예약되었습니다.",
+"{count} files scanned" => "파일 {count}개 검색됨",
+"error while scanning" => "검색 중 오류 발생",
"Name" => "이름",
"Size" => "크기",
"Modified" => "수정됨",
-"1 folder" => "1 폴더",
-"{count} folders" => "{count} 폴더",
-"1 file" => "1 파일",
-"{count} files" => "{count} 파일",
+"1 folder" => "폴더 1개",
+"{count} folders" => "폴더 {count}개",
+"1 file" => "파일 1개",
+"{count} files" => "파일 {count}개",
"File handling" => "파일 처리",
"Maximum upload size" => "최대 업로드 크기",
-"max. possible: " => "최대. 가능한:",
-"Needed for multi-file and folder downloads." => "멀티 파일 및 폴더 다운로드에 필요.",
-"Enable ZIP-download" => "ZIP- 다운로드 허용",
-"0 is unlimited" => "0은 무제한 입니다",
-"Maximum input size for ZIP files" => "ZIP 파일에 대한 최대 입력 크기",
+"max. possible: " => "최대 가능:",
+"Needed for multi-file and folder downloads." => "다중 파일 및 폴더 다운로드에 필요합니다.",
+"Enable ZIP-download" => "ZIP 다운로드 허용",
+"0 is unlimited" => "0은 무제한입니다",
+"Maximum input size for ZIP files" => "ZIP 파일 최대 크기",
"Save" => "저장",
"New" => "새로 만들기",
"Text file" => "텍스트 파일",
"Folder" => "폴더",
-"From link" => "From link",
+"From link" => "링크에서",
"Upload" => "업로드",
"Cancel upload" => "업로드 취소",
"Nothing in here. Upload something!" => "내용이 없습니다. 업로드할 수 있습니다!",
"Download" => "다운로드",
"Upload too large" => "업로드 용량 초과",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.",
-"Files are being scanned, please wait." => "파일을 검색중입니다, 기다려 주십시오.",
-"Current scanning" => "커런트 스캐닝"
+"Files are being scanned, please wait." => "파일을 검색하고 있습니다. 기다려 주십시오.",
+"Current scanning" => "현재 검색"
);
diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php
index b9d030c5d5d..c5ee6c422d5 100644
--- a/apps/files/l10n/sl.php
+++ b/apps/files/l10n/sl.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
"There is no error, the file uploaded with success" => "Datoteka je uspešno naložena brez napak.",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Naložena datoteka presega dovoljeno velikost. Le-ta je določena z vrstico upload_max_filesize v datoteki php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Naložena datoteka presega velikost, ki jo določa parameter MAX_FILE_SIZE v HTML obrazcu",
"The uploaded file was only partially uploaded" => "Datoteka je le delno naložena",
"No file was uploaded" => "Nobena datoteka ni bila naložena",
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index de440a6f79c..bd34c9a76d9 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -3,7 +3,7 @@
<?php echo($_['breadcrumb']); ?>
<?php if ($_['isCreatable']):?>
<div class="actions <?php if (isset($_['files']) and count($_['files'])==0):?>emptyfolder<?php endif; ?>">
- <div id='new' class='button'>
+ <div id="new" class="button">
<a><?php echo $l->t('New');?></a>
<ul class="popup popupTop">
<li style="background-image:url('<?php echo OCP\mimetype_icon('text/plain') ?>')"
@@ -14,7 +14,7 @@
data-type='web'><p><?php echo $l->t('From link');?></p></li>
</ul>
</div>
- <div class="file_upload_wrapper svg">
+ <div id="upload" class="button">
<form data-upload-id='1'
id="data-upload-form"
class="file_upload_form"
@@ -30,19 +30,20 @@
<input type="hidden" class="max_human_file_size"
value="(max <?php echo $_['uploadMaxHumanFilesize']; ?>)">
<input type="hidden" name="dir" value="<?php echo $_['dir'] ?>" id="dir">
- <input class="file_upload_start" type="file" name='files[]'/>
- <a href="#" class="file_upload_button_wrapper" onclick="return false;"
- title="<?php echo $l->t('Upload'); echo ' max. '.$_['uploadMaxHumanFilesize'] ?>"></a>
- <button class="file_upload_filename"></button>
- <iframe name="file_upload_target_1" class='file_upload_target' src=""></iframe>
+ <input type="file" id="file_upload_start" name='files[]'/>
+ <a href="#" class="svg" onclick="return false;"
+ title="<?php echo $l->t('Upload') . ' max. '.$_['uploadMaxHumanFilesize'] ?>"></a>
+
+ <iframe name="file_upload_target_1" class="file_upload_target" src=""></iframe>
</form>
</div>
- <div id="upload">
- <div id="uploadprogressbar"></div>
- <input type="button" class="stop" style="display:none"
- value="<?php echo $l->t('Cancel upload');?>"
- onclick="javascript:Files.cancelUploads();" />
- </div>
+ <div id="uploadprogresswrapper">
+ <div id="uploadprogressbar"></div>
+ <input type="button" class="stop" style="display:none"
+ value="<?php echo $l->t('Cancel upload');?>"
+ onclick="javascript:Files.cancelUploads();"
+ />
+ </div>
</div>
<div id="file_action_panel"></div>