From: Arthur Schiwon
Date: Sun, 17 Apr 2011 15:49:56 +0000 (+0200)
Subject: implement "new folder" function
X-Git-Tag: v3.0~267^2~558^2~85^2~1^2
X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9b26cb0bfb6c6b3aab03eb3320a9a9917786f1ac;p=nextcloud-server.git
implement "new folder" function
---
diff --git a/files/ajax/newfolder.php b/files/ajax/newfolder.php
new file mode 100644
index 00000000000..988e7f04012
--- /dev/null
+++ b/files/ajax/newfolder.php
@@ -0,0 +1,29 @@
+ "error", "data" => array( "message" => "Authentication error" )));
+ exit();
+}
+
+// Get the params
+$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
+$foldername = isset( $_GET['foldername'] ) ? $_GET['foldername'] : '';
+
+if($foldername == '') {
+ echo json_encode( array( "status" => "error", "data" => array( "message" => "Empty Foldername" )));
+ exit();
+}
+error_log('try to create ' . $foldername . ' in ' . $dir);
+if(OC_FILES::newFile($dir, $foldername, 'dir')) {
+ echo json_encode( array( "status" => "success", "data" => array()));
+ exit();
+}
+
+echo json_encode( array( "status" => "error", "data" => array( "message" => "Error when creating the folder" )));
\ No newline at end of file
diff --git a/files/css/files.css b/files/css/files.css
index 1d7fb5ef592..4c5bd0427b6 100644
--- a/files/css/files.css
+++ b/files/css/files.css
@@ -23,11 +23,11 @@
display: none;
}
-#file_upload_target {
+#file_newfolder_form {
display: none;
}
-#file_action_panel {
+#file_upload_target {
display: none;
}
diff --git a/files/js/files.js b/files/js/files.js
index 44506763032..313727cedbc 100644
--- a/files/js/files.js
+++ b/files/js/files.js
@@ -1,4 +1,6 @@
$(document).ready(function() {
+ $('#file_action_panel').attr('activeAction', false);
+
// Sets browser table behaviour :
$('.browser tr').hover(
function() {
@@ -37,16 +39,43 @@ $(document).ready(function() {
$('.browser input:checkbox').attr('checked', false);
});
- // Shows and hides file upload form
- $('#file_upload_button').toggle(function() {
- $('#file_upload_form').css({"display":"block"});
- }, function() {
- $('#file_upload_form').css({"display":"none"});
- });
-
$('#file_upload_start').click(function() {
$('#file_upload_target').load(uploadFinished);
});
+
+ $('#file_new_dir_submit').click(function() {
+ $.ajax({
+ url: 'ajax/newfolder.php',
+ data: "dir="+$('#dir').val()+"&foldername="+$('#file_new_dir_name').val(),
+ complete: boolOpFinished
+ });
+ });
+
+ $('.upload').click(function(){
+ if($('#file_action_panel').attr('activeAction') != 'upload') {
+ $('#file_action_panel').attr('activeAction', 'upload');
+ $('#fileSelector').replaceWith('');
+ $('#file_action_panel form').css({"display":"none"});
+ $('#file_upload_form').css({"display":"block"});
+ } else {
+ $('#file_action_panel').attr('activeAction', 'false');
+ $('#file_upload_form').css({"display":"none"})
+ }
+ return false;
+ });
+
+ $('.new-dir').click(function(){
+ if($('#file_action_panel').attr('activeAction') != 'new-dir') {
+ $('#file_action_panel').attr('activeAction', 'new-dir');
+ $('#file_new_dir_name').val('');
+ $('#file_action_panel form').css({"display":"none"});
+ $('#file_newfolder_form').css({"display":"block"})
+ } else {
+ $('#file_newfolder_form').css({"display":"none"})
+ $('#file_action_panel').attr('activeAction', false);
+ }
+ return false;
+ });
});
function uploadFinished() {
@@ -64,6 +93,24 @@ function uploadFinished() {
}
}
+function resetFileActionPanel() {
+ $('#file_action_panel form').css({"display":"none"});
+ $('#file_action_panel').attr('activeAction', false);
+}
+
+function boolOpFinished(data) {
+ result = eval("("+data.responseText+");");
+ if(result.status == 'success'){
+ $.ajax({
+ url: 'ajax/list.php',
+ data: "dir="+$('#dir').val(),
+ complete: refreshContents
+ });
+ } else {
+ alert(result.data.message);
+ }
+}
+
function refreshContents(data) {
result = eval("("+data.responseText+");");
if(typeof(result.data.breadcrumb) != 'undefined'){
@@ -71,6 +118,7 @@ function refreshContents(data) {
}
updateFileList(result.data.files);
$('#file_upload_button').click();
+ resetFileActionPanel();
}
function updateBreadcrumb(breadcrumbHtml) {
diff --git a/files/templates/index.php b/files/templates/index.php
index 28187bcb531..c6dc123cee0 100644
--- a/files/templates/index.php
+++ b/files/templates/index.php
@@ -5,16 +5,15 @@ href="" title="" class="new-dir">New folderDownloadShareDelete
-
-
-
-
+