]> git.mjollnir.org Git - s9y.git/commitdiff
Pimp up the valium:
authorgarvinhicking <garvinhicking>
Thu, 6 Apr 2006 15:42:04 +0000 (15:42 +0000)
committergarvinhicking <garvinhicking>
Thu, 6 Apr 2006 15:42:04 +0000 (15:42 +0000)
Allow directory creation, interependant frame refreshing dependant on options.

include/admin/images.inc.php
include/functions_images.inc.php
serendipity_admin_image_selector.php
templates/default/treeview/tree.css

index 0d14c9cc2c049b670e94fa24f4736d67e49b539b..28c32877d9d2cd80dc1e86a7c66506b768053760 100644 (file)
@@ -451,7 +451,7 @@ switch ($serendipity['GET']['adminAction']) {
     <div class="image_directory_create_desc"><?php echo CREATE_DIRECTORY_DESC ?></div>
     <br />
     <br />
-    <form id="image_directory_create_form" method="POST" action="?serendipity[adminModule]=images&amp;serendipity[adminAction]=directoryDoCreate">
+    <form id="image_directory_create_form" method="POST" action="?serendipity[step]=directoryDoCreate&amp;serendipity[adminModule]=images&amp;serendipity[adminAction]=directoryDoCreate">
     <?php echo serendipity_setFormToken(); ?>
     <table cellpadding="5">
         <tr>
@@ -463,7 +463,7 @@ switch ($serendipity['GET']['adminAction']) {
             <td><select name="serendipity[parent]">
                     <option value=""><?php echo BASE_DIRECTORY ?></option>
                 <?php foreach ( $folders as $folder ) { ?>
-                    <option value="<?php echo $folder['relpath'] ?>"><?php echo str_repeat('&nbsp;', $folder['depth']*2) . ' '. $folder['name'] ?></option>
+                    <option <?php echo ($folder['relpath'] == $serendipity['GET']['only_path'] ? 'selected="selected"' : ''); ?> value="<?php echo $folder['relpath'] ?>"><?php echo str_repeat('&nbsp;', $folder['depth']*2) . ' '. $folder['name'] ?></option>
                 <?php } ?>
                 </select>
             </td>
index 5e85b98b37f676bb54100b304bc49cc8a1ab8550..91c890284a17c787176860070be2565640785c2c 100644 (file)
@@ -1625,6 +1625,10 @@ function serendipity_killPath($basedir, $directory = '', $forceDelete = false) {
  */
 function serendipity_traversePath($basedir, $dir='', $onlyDirs = true, $pattern = NULL, $depth = 1, $max_depth = NULL, $apply_ACL = false, $aExcludeDirs = NULL) {
 
+    if ($aExcludeDirs === null) {
+        $aExcludeDirs = array("CVS" => true, ".svn" => true);
+    }
+
     $odir = serendipity_dirSlash('end', $basedir) . serendipity_dirSlash('end', $dir);
     $dh = @opendir($odir);
     if (!$dh) {
index c5a2ed42711a4f93783cdef64bfd60adbb22f0c6..53676b8e628c02b03d32a30fa27c7f0a84afee58 100644 (file)
@@ -107,6 +107,18 @@ if ($serendipity['GET']['step'] === 'tree') {
 <div class="serendipityAdminContent">
 
 <?php
+if (!empty($serendipity['GET']['only_path'])) {
+?>
+<script type="text/javascript">
+    if (parent.frames && parent.frames['tree']) {
+        parent.frames['tree'].document.getElementById('newdirlink').href =
+            parent.frames['tree'].basenewdirurl +
+            "<?php echo htmlspecialchars($serendipity['GET']['only_path']); ?>"
+    }
+</script>
+<?php
+}
+
 switch ($serendipity['GET']['step']) {
     case '1':
         if (isset($serendipity['GET']['adminAction'])) { // Embedded upload form
@@ -288,6 +300,24 @@ switch ($serendipity['GET']['step']) {
     }
     break;
 
+    case 'directoryDoCreate':
+        $is_created = true;
+    case 'directoryCreate':
+        $serendipity['GET']['adminAction'] = $serendipity['GET']['step'];
+        include S9Y_INCLUDE_PATH . 'include/admin/images.inc.php';
+
+        if ($is_created) {
+?>
+<script type="text/javascript">
+if (parent.frames['tree']) {
+    parent.frames['tree'].location.href = parent.frames['tree'].location.href;
+    parent.frames['media'].location.href = '<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[step]=default&serendipity[only_path]=<?php echo $new_dir; ?>';
+}
+</script>
+<?php
+        }
+        break;
+
     case 'tree':
        $aExclude = array("CVS" => true, ".svn" => true);
        serendipity_plugin_api::hook_event('backend_media_path_exclude_directories', $aExclude);
@@ -321,6 +351,7 @@ switch ($serendipity['GET']['step']) {
         } else {
             toggle_state = 'expand';
             tree.collapseAll();
+            coreNode.expand();
         }
     }
     </script>
@@ -338,7 +369,7 @@ switch ($serendipity['GET']['step']) {
 
     <div id="footerContainer">
         <div id="footer">
-            <p>&nbsp;</p>
+            <p><a id="newdirlink" target="media" class="serendipityPrettyButton" href="<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[step]=directoryCreate"><?php echo CREATE_DIRECTORY; ?></a></p>
         </div>
     </div>
 
@@ -346,24 +377,30 @@ switch ($serendipity['GET']['step']) {
        var tree;
        var nodes = new Array();
        var nodeIndex;
+       var coreNode = '';
+       var last_path = '';
+       var baseurl       = '<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[step]=default&serendipity[only_path]=';
+    var basenewdirurl =  '<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[step]=directoryCreate&serendipity[only_path]=';
 
        function treeInit() {
                tree = new YAHOO.widget.TreeView("treeDiv1");
-               var baseurl = '<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[step]=default&serendipity[only_path]=';
-        var rootNode = new YAHOO.widget.TextNode("<?php echo MEDIA; ?>", tree.getRoot(), false);
-               rootNode.href = baseurl;
-               rootNode.target = 'media';
-        rootNode.expanded = true;
+               tree.onExpand = function(node) {
+                   document.getElementById('newdirlink').href = basenewdirurl + node.data.relpath;
+               };
+
+        coreNode = new YAHOO.widget.TextNode("<?php echo MEDIA; ?>", tree.getRoot(), false);
+               coreNode.href = baseurl;
+               coreNode.target = 'media';
+        coreNode.expanded = true;
 <?php
-        foreach($paths AS $item) {
+        foreach($paths AS $id => $item) {
+            echo '      var mydir = { id: "' . $id . '", label: "' . $item['name'] . '", target : "media", href: baseurl + "' . $item['relpath'] . '", relpath: "' . $item['relpath'] . '" };' . "\n";
             if ($item['depth'] == 1) {
-                echo '      var tmpNode = new YAHOO.widget.TextNode("' . $item['name'] . '", rootNode, false);' . "\n";
+                echo '      var tmpNode = new YAHOO.widget.TextNode(mydir, coreNode, false);' . "\n";
             } else {
-                echo '      var tmpNode = new YAHOO.widget.TextNode("' . $item['name'] . '", last_node_' . ($item['depth'] - 1) . ', false);' . "\n";
+                echo '      var tmpNode = new YAHOO.widget.TextNode(mydir, last_node_' . ($item['depth'] - 1) . ', false);' . "\n";
             }
             echo '      var last_node_' . $item['depth'] . ' = tmpNode;' . "\n";
-            echo '      tmpNode.href   = baseurl + "' . $item['relpath'] . '"' . "\n";
-            echo '      tmpNode.target = "media"' . "\n";
         }
 ?>
                tree.draw();
index 835742b0d07b85ea2b1d4cdc26ce795d9e6147fd..afcde17b9b3095b67f1f9b6842529d88ea06ce72 100644 (file)
@@ -1,7 +1,7 @@
 #expandcontractdiv {
     font-size: xx-small;
-    margin-bottom: 5px;
     text-align: center;
+    margin: 0px auto 5px auto;
 }
 
 #serendipityAdminBodyImageSelectorTree {
     background-color: #EEE;
 }
 
+#footerContainer {
+    text-align: center;
+    margin: 0px auto 0px auto;
+}
 
 /* Copyright (c) 2006 Yahoo! Inc. All rights reserved. */