]> source.dussan.org Git - nextcloud-server.git/commitdiff
implement "new folder" function
authorArthur Schiwon <blizzz@arthur-schiwon.de>
Sun, 17 Apr 2011 15:49:56 +0000 (17:49 +0200)
committerArthur Schiwon <blizzz@arthur-schiwon.de>
Sun, 17 Apr 2011 15:49:56 +0000 (17:49 +0200)
files/ajax/newfolder.php [new file with mode: 0644]
files/css/files.css
files/js/files.js
files/templates/index.php

diff --git a/files/ajax/newfolder.php b/files/ajax/newfolder.php
new file mode 100644 (file)
index 0000000..988e7f0
--- /dev/null
@@ -0,0 +1,29 @@
+<?php
+
+// Init owncloud
+require_once('../../lib/base.php');
+
+// We send json data
+header( "Content-Type: application/jsonrequest" );
+
+// Check if we are a user
+if( !OC_USER::isLoggedIn()){
+       echo json_encode( array( "status" => "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
index 1d7fb5ef592501d54497995cb4a02544474481aa..4c5bd0427b6df8de98f181ee0f966e7d03096072 100644 (file)
        display: none;
 }
 
-#file_upload_target {
+#file_newfolder_form {
        display: none;
 }
 
-#file_action_panel {
+#file_upload_target {
        display: none;
 }
 
index 445067630329475b061f757a3f113f5d976d7c14..313727cedbc2b1c28a865833e82e16efa446ba49 100644 (file)
@@ -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('<input type="file" name="file" id="fileSelector">');
+                       $('#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) {
index 28187bcb531bc011ec1468bffbcfc7af325db176..c6dc123cee0311658f40451da34f4966ee200742 100644 (file)
@@ -5,16 +5,15 @@ href="" title="" class="new-dir">New folder</a><a href="" title=""
 class="download">Download</a><a href="" title="" class="share">Share</a><a
 href="" title="" class="delete">Delete</a>
        </p>
-       <div id="file_upload_form">
-               <form action="ajax/upload.php"
+       <div id="file_action_panel">
+               <form id="file_upload_form" action="ajax/upload.php"
 method="post" enctype="multipart/form-data" target="file_upload_target"><input
 type="hidden" name="MAX_FILE_SIZE" value="<?php echo $_["uploadMaxFilesize"] ?>" id="max_upload"><input
 type="hidden" name="dir" value="<?php echo $_["dir"] ?>" id="dir"><input
 type="file" name="file" id="fileSelector"><input type="submit"
 id="file_upload_start" value="Upload" /><iframe id="file_upload_target"
 name="file_upload_target" src=""></iframe></form>
-       </div>
-       <div id="file_action_panel">
+               <form id="file_newfolder_form"><input type="text" name="file_new_dir_name" id="file_new_dir_name" />&nbsp;<input type="button" id="file_new_dir_submit" name="file_new_dir_submit" value="OK" /></form>
        </div>
 </div>