WordPress.org

Make WordPress Core

Ticket #11817: ticket_11817_nav_menu_enhancements.diff

File ticket_11817_nav_menu_enhancements.diff, 70.4 KB (added by ptahdunbar, 11 years ago)

Overhauled the pages, and category list to use standard WP UI elements (http://i46.tinypic.com/2ih8rr9.jpg), tweaked the drag-n-drop js to allow for bulk selection before adding items to the menu, custom links overhaul (http://i49.tinypic.com/2u54yvb.jpg and http://i45.tinypic.com/2moshmo.jpg), nav-menus.php layout cleanup. (updated script loader + included minifed versions of the js/css changes)

  • wp-includes/nav-menu-template.php

     
    149149
    150150                case 'default':
    151151                        $template_dir = get_bloginfo('url');
     152                        $menu_id = 'menu-item-' . $menu_item->ID;
    152153?>
    153154                                        <dl>
    154155                                                <dt>
    155                                                         <a class="title" title="<?php esc_attr_e('Add to Menu'); ?>" onclick="appendToList('<?php echo esc_js( esc_url_raw( $template_dir ) ); ?>','<?php echo esc_js( $menu_item->append ); ?>','<?php echo esc_js( $menu_item->title ); ?>','<?php echo esc_js( $menu_item->link ); ?>','<?php echo esc_js( $menu_item->ID ); ?>','<?php echo esc_js( $menu_item->parent_item ); ?>','<?php echo esc_js( $menu_item->description ); ?>')" name="<?php echo esc_attr( $menu_item->title ); ?>" value="<?php echo esc_attr( $menu_item->link ); ?>"><?php echo $menu_item->title; ?></a>
     156                                                        <label class="title"><input type="checkbox" id="<?php echo esc_attr($menu_id); ?>" onclick="updateQueue('<?php echo esc_js( esc_url_raw( $template_dir ) ); ?>','<?php echo esc_js( $menu_item->append ); ?>','<?php echo esc_js( $menu_item->title ); ?>','<?php echo esc_js( $menu_item->link ); ?>','<?php echo esc_js( $menu_item->ID ); ?>','<?php echo esc_js( $menu_item->parent_item ); ?>','<?php echo esc_js( $menu_item->description ); ?>')" name="<?php echo esc_attr( $menu_item->title ); ?>" value="<?php echo esc_attr( $menu_item->link ); ?>" /><?php echo $menu_item->title; ?></label>
    156157                                                </dt>
    157158                                        </dl>
    158159<?php
  • wp-includes/script-loader.php

     
    398398
    399399                // Custom Navigation
    400400                $scripts->add( 'nav-menu-default-items', "/wp-admin/js/nav-menu-default-items$suffix.js", false, '20100223' );
    401                 $scripts->add( 'nav-menu-dynamic-functions', "/wp-admin/js/nav-menu-dynamic-functions$suffix.js", false, '20100224b' );
     401                $scripts->add( 'nav-menu-dynamic-functions', "/wp-admin/js/nav-menu-dynamic-functions$suffix.js", false, '20100225b' );
    402402                $scripts->localize( 'nav-menu-dynamic-functions', 'navMenuL10n', array(
    403403                        'custom' => _x('Custom', 'menu nav item type'),
    404404                        'page' => _x('Page', 'menu nav item type'),
     
    474474        $styles->add( 'farbtastic', '/wp-admin/css/farbtastic.css', array(), '1.2' );
    475475        $styles->add( 'jcrop', '/wp-includes/js/jcrop/jquery.Jcrop.css', array(), '0.9.8' );
    476476        $styles->add( 'imgareaselect', '/wp-includes/js/imgareaselect/imgareaselect.css', array(), '0.9.1' );
    477         $styles->add( 'nav-menu', "/wp-admin/css/nav-menu$suffix.css", array(), '20100225' );
     477        $styles->add( 'nav-menu', "/wp-admin/css/nav-menu$suffix.css", array(), '20100225b' );
    478478
    479479        foreach ( $rtl_styles as $rtl_style ) {
    480480                $styles->add_data( $rtl_style, 'rtl', true );
  • wp-admin/admin-ajax.php

     
    477477        _wp_ajax_delete_comment_response( $comment->comment_ID );
    478478        die( '0' );
    479479        break;
     480case 'add-menu-link':
     481        if ( !current_user_can( 'manage_links' ) )
     482                die('-1');
     483       
     484        $link_cat = is_term( __('Custom Menu Links'), 'link_category' );
     485        if ( $link_cat ) {
     486                $_POST['link_category'] = array( $link_cat['term_id'] );
     487               
     488                // Don't add the link if the default values haven't been changed
     489                if ( 'Menu Item' != $_POST['link_name'] || 'http://' != $_POST['link_url'] ) {
     490                        $link_id = add_link();
     491                        $r[0] = get_bookmarks( array( 'category_name' => __('Custom Menu Links'), 'limit' => 1, 'include' => $link_id ) );
     492                }
     493               
     494                $r[1] = get_bloginfo('url');
     495                echo json_encode( $r );
     496        } else {
     497                die('-1');
     498        }
     499        break;
    480500case 'add-link-category' : // On the Fly
    481501        check_ajax_referer( $action );
    482502        if ( !current_user_can( 'manage_categories' ) )
  • wp-admin/js/nav-menu-dynamic-functions.js

     
    1 function removeitem(c){var b=document.getElementById("menu-"+c);if(b){var a=document.getElementById("menu-"+c).parentNode;throwaway_node=a.removeChild(b)}updatepostdata()}function edititem(a){itemTitle=jQuery("#title"+a).attr("value");itemURL=jQuery("#linkurl"+a).attr("value");itemAnchorTitle=jQuery("#anchortitle"+a).attr("value");itemNewWindow=jQuery("#newwindow"+a).attr("value");itemDesc=jQuery("#description"+a).attr("value");jQuery("#dialog-confirm").dialog("option","itemID",a);jQuery("#dialog-confirm").dialog("open");jQuery("#edittitle").attr("value",itemTitle);jQuery("#editlink").attr("value",itemURL);jQuery("#editanchortitle").attr("value",itemAnchorTitle);jQuery("#editnewwindow option[value='"+itemNewWindow+"']").attr("selected","selected");jQuery("#editdescription").attr("value",itemDesc)}function updatepostdata(){var a=0;jQuery("#custom-nav").find("li").each(function(c){c=c+1;var b=jQuery(this).attr("value");jQuery(this).find("#position"+b).attr("value",c);jQuery(this).attr("id","menu-"+c);jQuery(this).attr("value",c);jQuery(this).find("#dbid"+b).attr("name","dbid"+c);jQuery(this).find("#dbid"+b).attr("id","dbid"+c);jQuery(this).find("#postmenu"+b).attr("name","postmenu"+c);jQuery(this).find("#postmenu"+b).attr("id","postmenu"+c);var d=jQuery(this).find("#parent"+b).parent().parent().parent().attr("value");jQuery(this).find("#parent"+b).attr("name","parent"+c);jQuery(this).find("#parent"+b).attr("id","parent"+c);if(d){}else{d=0}jQuery(this).find("#parent"+b).attr("value",d);jQuery(this).find("#title"+b).attr("name","title"+c);jQuery(this).find("#title"+b).attr("id","title"+c);jQuery(this).find("#linkurl"+b).attr("name","linkurl"+c);jQuery(this).find("#linkurl"+b).attr("id","linkurl"+c);jQuery(this).find("#description"+b).attr("name","description"+c);jQuery(this).find("#description"+b).attr("id","description"+c);jQuery(this).find("#icon"+b).attr("name","icon"+c);jQuery(this).find("#icon"+b).attr("id","icon"+c);jQuery(this).find("#position"+b).attr("name","position"+c);jQuery(this).find("#position"+b).attr("id","position"+c);jQuery(this).find("#linktype"+b).attr("name","linktype"+c);jQuery(this).find("#linktype"+b).attr("id","linktype"+c);jQuery(this).find("#anchortitle"+b).attr("name","anchortitle"+c);jQuery(this).find("#anchortitle"+b).attr("id","anchortitle"+c);jQuery(this).find("#newwindow"+b).attr("name","newwindow"+c);jQuery(this).find("#newwindow"+b).attr("id","newwindow"+c);jQuery(this).find("dl > dt > span > #remove"+b).attr("value",c);jQuery(this).find("dl > dt > span > #remove"+b).attr("onClick","removeitem("+c+")");jQuery(this).find("dl > dt > span > #remove"+b).attr("id","remove"+c);jQuery("#li-count").attr("value",c)})}function appendToList(b,s,d,n,h,l,e){var k="";var c="";var r="";var o="";var i="";var a="";if(s==navMenuL10n.custom){k=document.getElementById("custom-menu-item-name").value;c=document.getElementById("custom-menu-item-url").value;r="";o="";inputlinktype="custom";i=""}else{if(s==navMenuL10n.page){k=htmlentities(d.toString());c=n.toString();r=h.toString();o="0";inputlinktype="page";i=htmlentities(e.toString())}else{if(s==navMenuL10n.category){k=htmlentities(d.toString());c=n.toString();r=h.toString();o="0";inputlinktype="category";i=htmlentities(e.toString())}else{k="";k="";r="";o="";inputlinktype="custom";i=""}}}var g=document.getElementById("custom-nav").getElementsByTagName("li").length+1;var p=g;var m=0;try{var q=document.getElementById("menu-"+p.toString()).value}catch(f){m=1}while(m==0){p=p+1;try{var j=document.getElementById("menu-"+p.toString()).value}catch(f){m=1}}jQuery(".maintitle").after('<div id="message" class="updated fade below-h2"><p>Menu Item added!</p></div>');jQuery("#message").animate({opacity:1},2000).fadeOut(300,function(){jQuery(this).remove()});jQuery("#custom-nav").append('<li id="menu-'+p+'" value="'+p+'"><div class="dropzone ui-droppable"></div><dl class="ui-droppable"><dt><span class="title">'+k+'</span><span class="controls"><span class="type">'+s+'</span><a id="edit'+p+'" onclick="edititem('+p+')" value="'+p+'"><img class="edit" alt="Edit Menu Item" title="Edit Menu Item" src="'+b+'/wp-admin/images/ico-edit.png" /></a> <a id="remove'+p+'" onclick="removeitem('+p+')" value="'+p+'"><img class="remove" alt="Remove from Custom Menu" title="Remove from Custom Menu" src="'+b+'/wp-admin/images/ico-close.png" /></a> <a href="'+c+'" target="_blank"><img alt="View Custom Link" title="View Custom Link" src="'+b+'/wp-admin/images/ico-viewpage.png" /></a></span></dt></dl><a class="hide" href="'+c+'">'+k+'</a><input type="hidden" name="postmenu'+p+'" id="postmenu'+p+'" value="'+r+'" /><input type="hidden" name="parent'+p+'" id="parent'+p+'" value="'+o+'" /><input type="hidden" name="title'+p+'" id="title'+p+'" value="'+k+'" /><input type="hidden" name="linkurl'+p+'" id="linkurl'+p+'" value="'+c+'" /><input type="hidden" name="description'+p+'" id="description'+p+'" value="'+i+'" /><input type="hidden" name="icon'+p+'" id="icon'+p+'" value="'+a+'" /><input type="hidden" name="position'+p+'" id="position'+p+'" value="'+p+'" /><input type="hidden" name="linktype'+p+'" id="linktype'+p+'" value="'+inputlinktype+'" /><input type="hidden" name="anchortitle'+p+'" id="anchortitle'+p+'" value="'+k+'" /><input type="hidden" name="newwindow'+p+'" id="newwindow'+p+'" value="0" /></li>');jQuery("#menu-"+p+"").draggable({handle:" > dl",opacity:0.8,addClasses:false,helper:"clone",zIndex:100});jQuery("#menu-"+p+" dl, #menu-"+p+" .dropzone").droppable({accept:"#"+p+", #custom-nav li",tolerance:"pointer",drop:function(x,w){var t=jQuery(this).parent();var y=!jQuery(this).hasClass("dropzone");if(y&&t.children("ul").length==0){t.append("<ul/>")}if(y){t.children("ul").append(w.draggable)}else{t.before(w.draggable)}t.find("dl,.dropzone").css({backgroundColor:"",borderColor:""});var v=w.draggable.attr("value");var u=t.attr("value");t.find("#menu-"+v).find("#parent"+v).val(u);jQuery(this).parent().find("dt").removeAttr("style");jQuery(this).parent().find("div:first").removeAttr("style")},over:function(){if(jQuery(this).attr("class")=="dropzone ui-droppable"){jQuery(this).parent().find("div:first").css("background","none").css("height","50px")}else{if(jQuery(this).attr("class")=="ui-droppable"){jQuery(this).parent().find("dt:first").css("background","#d8d8d8")}else{}}var t=jQuery(this).parent().attr("id")},out:function(){jQuery(this).parent().find("dt").removeAttr("style");jQuery(this).parent().find("div:first").removeAttr("style");jQuery(this).filter(".dropzone").css({borderColor:""})}});updatepostdata()};
    2  No newline at end of file
     1jQuery(document).ready(function(){jQuery(".quick-search").click(function(){jQuery(this).attr("value","")});jQuery(".show-all").click(function(){jQuery(this).offsetParent().find("#add-buttons-actions").attr("style","margin-bottom: 10px;");jQuery(this).offsetParent().find(".list-wrap").css("display","block");jQuery(this).siblings(".quick-search").attr("value","");jQuery(this).offsetParent().find(".list-wrap dt").css("display","block");jQuery(this).hide();jQuery(this).siblings(".hide-all").show()});jQuery(".hide-all").click(function(){jQuery(this).offsetParent().find("#add-buttons-actions").attr("style","margin-bottom: 0px;");jQuery(this).offsetParent().find(".list-wrap").css("display","none");jQuery(this).siblings(".quick-search").attr("value","Search");jQuery(this).offsetParent().find(".list-wrap dt").css("display","none");jQuery(this).hide();jQuery(this).siblings(".show-all").show()});jQuery("#add-create-link a").click(function(){var link_url=jQuery(this).parent().siblings(".howto").find("#custom-menu-item-url").val();var link_name=jQuery(this).parent().siblings(".howto").find("#custom-menu-item-name").val();var template_dir="";params={action:"add-menu-link",link_url:link_url,link_name:link_name,};jQuery.post(ajaxurl,params,function(response){template_dir=response[1];update_links_list(response[0]);update_nav_menu(template_dir,"Link",response[0][0].link_name,response[0][0].link_url,response[0][0].link_id,0,response[0][0].link_description)},"json");var links=jQuery(this).offsetParent().find("#available-links input:checked");if(links){for(var i=0;i<links.length;i++){update_nav_menu(template_dir,"Link",links[i].name,links[i].value,links[i].id.substring(5,links[i].id.length),0,"")}jQuery(links).attr("checked",false)}})});function update_links_list(e){var link='<li><dl><dt><label class="title"><input type="checkbox" id="link-'+e[0].link_id+'" name="'+e[0].link_name+'" value="'+e[0].link_url+'" />'+e[0].link_name+"</label></dt></dl></li>";jQuery("#available-links .list").prepend(link);jQuery("#available-links .list #link-"+e[0].link_id).parent().animate({backgroundColor:"#FFFF33"},{duration:"fast",complete:function(){jQuery(this).css("backgroundColor","")}})}function update_nav_menu(templatedir,additemtype,itemtext,itemurl,itemid,itemparentid,itemdescription){var inputvaluevarname="";var inputvaluevarurl="";var inputitemid="";var inputparentid="";var inputdescription="";var inputicon="";if(additemtype==navMenuL10n.custom){inputvaluevarname=htmlentities(itemtext.toString());inputvaluevarurl=itemurl.toString();inputitemid="";inputparentid="";inputlinktype="custom";inputdescription=""}else{if(additemtype==navMenuL10n.page){inputvaluevarname=htmlentities(itemtext.toString());inputvaluevarurl=itemurl.toString();inputitemid=itemid.toString();inputparentid="0";inputlinktype="page";inputdescription=htmlentities(itemdescription.toString())}else{if(additemtype==navMenuL10n.category){inputvaluevarname=htmlentities(itemtext.toString());inputvaluevarurl=itemurl.toString();inputitemid=itemid.toString();inputparentid="0";inputlinktype="category";inputdescription=htmlentities(itemdescription.toString())}else{inputvaluevarname=htmlentities(itemtext.toString());inputvaluevarurl=itemurl.toString();inputitemid=itemid;inputparentid="";inputlinktype="custom";inputdescription=htmlentities(itemdescription.toString())}}}var count=document.getElementById("custom-nav").getElementsByTagName("li").length+1;var randomnumber=count;var validatetest=0;try{var test=document.getElementById("menu-"+randomnumber.toString()).value}catch(err){validatetest=1}while(validatetest==0){randomnumber=randomnumber+1;try{var test2=document.getElementById("menu-"+randomnumber.toString()).value}catch(err){validatetest=1}}jQuery("#custom-nav").append('<li id="menu-'+randomnumber+'" value="'+randomnumber+'"><div class="dropzone ui-droppable"></div><dl class="ui-droppable"><dt><span class="title">'+inputvaluevarname+'</span><span class="controls"><span class="type">'+additemtype+'</span><a id="edit'+randomnumber+'" onclick="edititem('+randomnumber+')" value="'+randomnumber+'"><img class="edit" alt="Edit Menu Item" title="Edit Menu Item" src="'+templatedir+'/wp-admin/images/ico-edit.png" /></a> <a id="remove'+randomnumber+'" onclick="removeitem('+randomnumber+')" value="'+randomnumber+'"><img class="remove" alt="Remove from Custom Menu" title="Remove from Custom Menu" src="'+templatedir+'/wp-admin/images/ico-close.png" /></a> <a href="'+inputvaluevarurl+'" target="_blank"><img alt="View Custom Link" title="View Custom Link" src="'+templatedir+'/wp-admin/images/ico-viewpage.png" /></a></span></dt></dl><a class="hide" href="'+inputvaluevarurl+'">'+inputvaluevarname+'</a><input type="hidden" name="postmenu'+randomnumber+'" id="postmenu'+randomnumber+'" value="'+inputitemid+'" /><input type="hidden" name="parent'+randomnumber+'" id="parent'+randomnumber+'" value="'+inputparentid+'" /><input type="hidden" name="title'+randomnumber+'" id="title'+randomnumber+'" value="'+inputvaluevarname+'" /><input type="hidden" name="linkurl'+randomnumber+'" id="linkurl'+randomnumber+'" value="'+inputvaluevarurl+'" /><input type="hidden" name="description'+randomnumber+'" id="description'+randomnumber+'" value="'+inputdescription+'" /><input type="hidden" name="icon'+randomnumber+'" id="icon'+randomnumber+'" value="'+inputicon+'" /><input type="hidden" name="position'+randomnumber+'" id="position'+randomnumber+'" value="'+randomnumber+'" /><input type="hidden" name="linktype'+randomnumber+'" id="linktype'+randomnumber+'" value="'+inputlinktype+'" /><input type="hidden" name="anchortitle'+randomnumber+'" id="anchortitle'+randomnumber+'" value="'+inputvaluevarname+'" /><input type="hidden" name="newwindow'+randomnumber+'" id="newwindow'+randomnumber+'" value="0" /></li>');dragAndDrop()}function removeitem(o){var todelete=document.getElementById("menu-"+o);if(todelete){var parenttodelete=document.getElementById("menu-"+o).parentNode;throwaway_node=parenttodelete.removeChild(todelete)}updatepostdata()}function edititem(o){itemTitle=jQuery("#title"+o).val();itemURL=jQuery("#linkurl"+o).val();itemAnchorTitle=jQuery("#anchortitle"+o).val();itemNewWindow=jQuery("#newwindow"+o).val();itemDesc=jQuery("#description"+o).val();jQuery("#dialog-confirm").dialog("option","itemID",o);jQuery("#dialog-confirm").dialog("open");jQuery("#edittitle").val(itemTitle);if("custom"==jQuery("#linktype"+o).val()){jQuery("#editlink-wrap").css("display","inline")}else{jQuery("#editlink-wrap").css("display","none")}jQuery("#editlink").val(itemURL);jQuery("#editanchortitle").val(itemAnchorTitle);jQuery("#editnewwindow option[value='"+itemNewWindow+"']").attr("selected","selected");jQuery("#editdescription").val(itemDesc)}function updatepostdata(){var i=0;jQuery("#custom-nav").find("li").each(function(i){i=i+1;var j=jQuery(this).attr("value");jQuery(this).find("#position"+j).attr("value",i);jQuery(this).attr("id","menu-"+i);jQuery(this).attr("value",i);jQuery(this).find("#dbid"+j).attr("name","dbid"+i);jQuery(this).find("#dbid"+j).attr("id","dbid"+i);jQuery(this).find("#postmenu"+j).attr("name","postmenu"+i);jQuery(this).find("#postmenu"+j).attr("id","postmenu"+i);var p=jQuery(this).find("#parent"+j).parent().parent().parent().attr("value");jQuery(this).find("#parent"+j).attr("name","parent"+i);jQuery(this).find("#parent"+j).attr("id","parent"+i);if(p){}else{p=0}jQuery(this).find("#parent"+j).attr("value",p);jQuery(this).find("#title"+j).attr("name","title"+i);jQuery(this).find("#title"+j).attr("id","title"+i);jQuery(this).find("#linkurl"+j).attr("name","linkurl"+i);jQuery(this).find("#linkurl"+j).attr("id","linkurl"+i);jQuery(this).find("#description"+j).attr("name","description"+i);jQuery(this).find("#description"+j).attr("id","description"+i);jQuery(this).find("#icon"+j).attr("name","icon"+i);jQuery(this).find("#icon"+j).attr("id","icon"+i);jQuery(this).find("#position"+j).attr("name","position"+i);jQuery(this).find("#position"+j).attr("id","position"+i);jQuery(this).find("#linktype"+j).attr("name","linktype"+i);jQuery(this).find("#linktype"+j).attr("id","linktype"+i);jQuery(this).find("#anchortitle"+j).attr("name","anchortitle"+i);jQuery(this).find("#anchortitle"+j).attr("id","anchortitle"+i);jQuery(this).find("#newwindow"+j).attr("name","newwindow"+i);jQuery(this).find("#newwindow"+j).attr("id","newwindow"+i);jQuery(this).find("dl > dt > span > #remove"+j).attr("value",i);jQuery(this).find("dl > dt > span > #remove"+j).attr("onClick","removeitem("+i+")");jQuery(this).find("dl > dt > span > #remove"+j).attr("id","remove"+i);jQuery("#li-count").attr("value",i)})}function updateQueue(templatedir,additemtype,itemtext,itemurl,itemid,itemparentid,itemdescription){var inputvaluevarname="";var inputvaluevarurl="";var inputitemid="";var inputparentid="";var inputdescription="";var inputicon="";if(additemtype==navMenuL10n.custom){inputvaluevarname=document.getElementById("custom-menu-item-name").value;inputvaluevarurl=document.getElementById("custom-menu-item-url").value;inputitemid="";inputparentid="";inputlinktype="custom";inputdescription=""}else{if(additemtype==navMenuL10n.page){inputvaluevarname=htmlentities(itemtext.toString());inputvaluevarurl=itemurl.toString();inputitemid=itemid.toString();inputparentid="0";inputlinktype="page";inputdescription=htmlentities(itemdescription.toString())}else{if(additemtype==navMenuL10n.category){inputvaluevarname=htmlentities(itemtext.toString());inputvaluevarurl=itemurl.toString();inputitemid=itemid.toString();inputparentid="0";inputlinktype="category";inputdescription=htmlentities(itemdescription.toString())}else{inputvaluevarname="";inputvaluevarname="";inputitemid="";inputparentid="";inputlinktype="custom";inputdescription=""}}}var count=document.getElementById("custom-nav").getElementsByTagName("li").length+1;var randomnumber=count;var validatetest=0;try{var test=document.getElementById("menu-"+randomnumber.toString()).value}catch(err){validatetest=1}while(validatetest==0){randomnumber=randomnumber+1;try{var test2=document.getElementById("menu-"+randomnumber.toString()).value}catch(err){validatetest=1}}if(jQuery(menu_item_id="#menu-item-"+inputitemid).attr("checked")){jQuery("#queue").append('<li id="menu-'+randomnumber+'" value="'+randomnumber+'"><div class="dropzone ui-droppable"></div><dl class="ui-droppable"><dt><span class="title">'+inputvaluevarname+'</span><span class="controls"><span class="type">'+additemtype+'</span><a id="edit'+randomnumber+'" onclick="edititem('+randomnumber+')" value="'+randomnumber+'"><img class="edit" alt="Edit Menu Item" title="Edit Menu Item" src="'+templatedir+'/wp-admin/images/ico-edit.png" /></a> <a id="remove'+randomnumber+'" onclick="removeitem('+randomnumber+')" value="'+randomnumber+'"><img class="remove" alt="Remove from Custom Menu" title="Remove from Custom Menu" src="'+templatedir+'/wp-admin/images/ico-close.png" /></a> <a href="'+inputvaluevarurl+'" target="_blank"><img alt="View Custom Link" title="View Custom Link" src="'+templatedir+'/wp-admin/images/ico-viewpage.png" /></a></span></dt></dl><a class="hide" href="'+inputvaluevarurl+'">'+inputvaluevarname+'</a><input type="hidden" name="postmenu'+randomnumber+'" id="postmenu'+randomnumber+'" value="'+inputitemid+'" /><input type="hidden" name="parent'+randomnumber+'" id="parent'+randomnumber+'" value="'+inputparentid+'" /><input type="hidden" name="title'+randomnumber+'" id="title'+randomnumber+'" value="'+inputvaluevarname+'" /><input type="hidden" name="linkurl'+randomnumber+'" id="linkurl'+randomnumber+'" value="'+inputvaluevarurl+'" /><input type="hidden" name="description'+randomnumber+'" id="description'+randomnumber+'" value="'+inputdescription+'" /><input type="hidden" name="icon'+randomnumber+'" id="icon'+randomnumber+'" value="'+inputicon+'" /><input type="hidden" name="position'+randomnumber+'" id="position'+randomnumber+'" value="'+randomnumber+'" /><input type="hidden" name="linktype'+randomnumber+'" id="linktype'+randomnumber+'" value="'+inputlinktype+'" /><input type="hidden" name="anchortitle'+randomnumber+'" id="anchortitle'+randomnumber+'" value="'+inputvaluevarname+'" /><input type="hidden" name="newwindow'+randomnumber+'" id="newwindow'+randomnumber+'" value="0" /></li>')}else{for(var i=0;i<jQuery('#queue li input[name^="postmenu"]').length;i++){if(itemid==jQuery('#queue li input[name^="postmenu"]')[i].value){var menu_queue_id=jQuery('#queue li input[name^="postmenu"]')[i].name.substring(8,jQuery('#queue li input[name^="postmenu"]')[i].name.length)}}jQuery("#queue li#menu-"+menu_queue_id).remove()}}function addQueuedItemsToMenu(button){jQuery(".maintitle").after('<div id="message" class="updated fade below-h2"><p>Menu Item added!</p></div>');jQuery("#message").animate({opacity:1},2000).fadeOut(300,function(){jQuery(this).remove()});var items=jQuery("#queue").children();jQuery("#queue").empty();jQuery("#custom-nav").append(items);jQuery(button).offsetParent().find(".list-container input").attr("checked",false);updatepostdata();dragAndDrop()}function dragAndDrop(){jQuery("#custom-nav li").draggable({handle:" > dl",opacity:0.8,addClasses:false,helper:"clone",zIndex:100});jQuery("#custom-nav li dl, #custom-nav li .dropzone").droppable({accept:"#custom-nav li",tolerance:"pointer",drop:function(e,ui){var li=jQuery(this).parent();var child=!jQuery(this).hasClass("dropzone");if(child&&li.children("ul").length==0){li.append("<ul/>")}if(child){li.children("ul").append(ui.draggable)}else{li.before(ui.draggable)}li.find("dl,.dropzone").css({backgroundColor:"",borderColor:""});var draggablevalue=ui.draggable.attr("value");var droppablevalue=li.attr("value");li.find("#menu-"+draggablevalue).find("#parent"+draggablevalue).val(droppablevalue);jQuery(this).parent().find("dt").removeAttr("style");jQuery(this).parent().find("div:first").removeAttr("style")},over:function(){if(jQuery(this).attr("class")=="dropzone ui-droppable"){jQuery(this).parent().find("div:first").css("background","none").css("height","50px")}else{if(jQuery(this).attr("class")=="ui-droppable"){jQuery(this).parent().find("dt:first").css("background","#d8d8d8")}else{}}var parentid=jQuery(this).parent().attr("id")},out:function(){jQuery(this).parent().find("dt").removeAttr("style");jQuery(this).parent().find("div:first").removeAttr("style");jQuery(this).filter(".dropzone").css({borderColor:""})}})};
     2 No newline at end of file
  • wp-admin/js/nav-menu-dynamic-functions.dev.js

     
    88 * @subpackage Administration
    99 */
    1010
     11jQuery(document).ready(function(){
     12       
     13        // Clear the search textbox
     14        jQuery('.quick-search').click(function(){
     15                jQuery(this).attr( 'value', '' );
     16        });
     17       
     18        // Show All
     19        jQuery('.show-all').click(function(){
     20                jQuery(this).offsetParent().find('#add-buttons-actions').attr( 'style','margin-bottom: 10px;' );
     21                jQuery(this).offsetParent().find('.list-wrap').css( 'display','block' );
     22                jQuery(this).siblings('.quick-search').attr( 'value', '' );             
     23                jQuery(this).offsetParent().find('.list-wrap dt').css( 'display', 'block' );
     24                jQuery(this).hide();
     25                jQuery(this).siblings('.hide-all').show();
     26        });
     27       
     28        // Hide All
     29        jQuery('.hide-all').click(function(){
     30                jQuery(this).offsetParent().find('#add-buttons-actions').attr( 'style','margin-bottom: 0px;' );
     31                jQuery(this).offsetParent().find('.list-wrap').css( 'display','none' );
     32                jQuery(this).siblings('.quick-search').attr( 'value', 'Search' );
     33                jQuery(this).offsetParent().find('.list-wrap dt').css( 'display', 'none' );
     34                jQuery(this).hide();
     35                jQuery(this).siblings('.show-all').show();
     36        });
     37       
     38        // Create the link, then add it to the Queue
     39        jQuery('#add-create-link a').click(function(){
     40                var link_url = jQuery(this).parent().siblings('.howto').find('#custom-menu-item-url').val();
     41                var link_name = jQuery(this).parent().siblings('.howto').find('#custom-menu-item-name').val();
     42                var template_dir = '';
     43               
     44                params = {
     45                        action: 'add-menu-link',
     46                        link_url: link_url,
     47                        link_name: link_name,
     48                };
     49               
     50                // save the link
     51                jQuery.post( ajaxurl, params, function(response) {
     52                        template_dir = response[1];
     53                                       
     54                        // Add link to the available links section
     55                        update_links_list(response[0]);
     56                       
     57                        // Update menu with new link
     58                        update_nav_menu( template_dir, 'Link', response[0][0].link_name, response[0][0].link_url, response[0][0].link_id, 0, response[0][0].link_description );
     59                }, 'json');
     60               
     61                var links = jQuery(this).offsetParent().find('#available-links input:checked');
     62               
     63                // If links are checked in the available links section, add them to the menu
     64                if ( links ) {
     65                        for (var i = 0; i < links.length; i++) {
     66                                update_nav_menu( template_dir, 'Link', links[i].name, links[i].value, links[i].id.substring( 5, links[i].id.length ), 0, '' );
     67                        };
     68                       
     69                        // Reset the checkboxes;
     70                        jQuery(links).attr('checked', false);
     71                };
     72        });
     73});
     74
     75// Add link to the available links section
     76function update_links_list(e) {
     77        var link = '<li><dl><dt><label class="title"><input type="checkbox" id="link-'+ e[0].link_id +'" name="'+ e[0].link_name +'" value="'+ e[0].link_url +'" />'+ e[0].link_name +'</label></dt></dl></li>';
     78               
     79        // Prepend the link to the available links section
     80        jQuery('#available-links .list').prepend( link );
     81       
     82        // Give feedback to the user
     83        jQuery('#available-links .list #link-' + e[0].link_id).parent().animate( { backgroundColor: '#FFFF33' }, { duration: 'fast', complete: function() { jQuery(this).css( 'backgroundColor', '' ); }});
     84}
     85
    1186/*
     87 * Adds the item to the menu
     88 *
     89 * @param string id - The menu item's id
     90 * @param string templatedir - directory of the add, edit, view images.
     91 * @param string additemtype - Page, Category, or Custom.
     92 * @param string itemtext - menu text.
     93 * @param string itemurl - url of the menu.
     94 * @param int itemid - menu id.
     95 * @param int itemparentid - default 0.
     96 * @param string itemdescription - the description of the menu item.
     97*/
     98function update_nav_menu( templatedir, additemtype, itemtext, itemurl, itemid, itemparentid, itemdescription ) {
     99        var inputvaluevarname = '';
     100        var inputvaluevarurl = '';
     101        var inputitemid = '';
     102        var inputparentid= '';
     103        var inputdescription = '';
     104        var inputicon = '';
     105
     106        if ( additemtype == navMenuL10n.custom ) {
     107                inputvaluevarname = htmlentities(itemtext.toString());
     108                inputvaluevarurl = itemurl.toString();
     109                inputitemid = '';
     110                inputparentid = '';
     111                inputlinktype = 'custom';
     112                inputdescription = '';
     113        } else if ( additemtype == navMenuL10n.page ) {
     114                inputvaluevarname = htmlentities(itemtext.toString());
     115                inputvaluevarurl = itemurl.toString();
     116                inputitemid = itemid.toString();
     117                inputparentid = '0';
     118                inputlinktype = 'page';
     119                inputdescription = htmlentities(itemdescription.toString());
     120
     121        } else if ( additemtype == navMenuL10n.category ) {
     122                inputvaluevarname = htmlentities(itemtext.toString());
     123                inputvaluevarurl = itemurl.toString();
     124                inputitemid = itemid.toString();
     125                inputparentid = '0';
     126                inputlinktype = 'category';
     127                inputdescription = htmlentities(itemdescription.toString());
     128        } else {
     129                inputvaluevarname = htmlentities(itemtext.toString());
     130                inputvaluevarurl = itemurl.toString();
     131                inputitemid = itemid;
     132                inputparentid = '';
     133                inputlinktype = 'custom';
     134                inputdescription = htmlentities(itemdescription.toString());
     135        }
     136
     137        var count = document.getElementById('custom-nav').getElementsByTagName('li').length + 1;
     138        var randomnumber = count;
     139        var validatetest = 0;
     140
     141        try {
     142                var test = document.getElementById( 'menu-' + randomnumber.toString() ).value;
     143        }
     144        catch ( err ) {
     145                validatetest = 1;
     146        }
     147
     148        while ( validatetest == 0 ) {
     149                randomnumber = randomnumber + 1;
     150                try {
     151                        var test2 = document.getElementById( 'menu-' + randomnumber.toString() ).value;
     152                }
     153                catch ( err ) {
     154                        validatetest = 1;
     155                }
     156        }
     157                       
     158        // Adds the item in the queue
     159        jQuery('#custom-nav').append('<li id="menu-' + randomnumber + '" value="' + randomnumber + '"><div class="dropzone ui-droppable"></div><dl class="ui-droppable"><dt><span class="title">' + inputvaluevarname + '</span><span class="controls"><span class="type">' + additemtype + '</span><a id="edit' + randomnumber + '" onclick="edititem(' + randomnumber + ')" value="' + randomnumber +'"><img class="edit" alt="Edit Menu Item" title="Edit Menu Item" src="' + templatedir + '/wp-admin/images/ico-edit.png" /></a> <a id="remove' + randomnumber + '" onclick="removeitem(' + randomnumber + ')" value="' + randomnumber +'"><img class="remove" alt="Remove from Custom Menu" title="Remove from Custom Menu" src="' + templatedir + '/wp-admin/images/ico-close.png" /></a> <a href="' + inputvaluevarurl + '" target="_blank"><img alt="View Custom Link" title="View Custom Link" src="' + templatedir + '/wp-admin/images/ico-viewpage.png" /></a></span></dt></dl><a class="hide" href="' + inputvaluevarurl + '">' + inputvaluevarname + '</a><input type="hidden" name="postmenu' + randomnumber + '" id="postmenu' + randomnumber + '" value="' + inputitemid + '" /><input type="hidden" name="parent' + randomnumber + '" id="parent' + randomnumber + '" value="' + inputparentid + '" /><input type="hidden" name="title' + randomnumber + '" id="title' + randomnumber + '" value="' + inputvaluevarname + '" /><input type="hidden" name="linkurl' + randomnumber + '" id="linkurl' + randomnumber + '" value="' + inputvaluevarurl + '" /><input type="hidden" name="description' + randomnumber + '" id="description' + randomnumber + '" value="' + inputdescription + '" /><input type="hidden" name="icon' + randomnumber + '" id="icon' + randomnumber + '" value="' + inputicon + '" /><input type="hidden" name="position' + randomnumber + '" id="position' + randomnumber + '" value="' + randomnumber + '" /><input type="hidden" name="linktype' + randomnumber + '" id="linktype' + randomnumber + '" value="' + inputlinktype + '" /><input type="hidden" name="anchortitle' + randomnumber + '" id="anchortitle' + randomnumber + '" value="' + inputvaluevarname + '" /><input type="hidden" name="newwindow' + randomnumber + '" id="newwindow' + randomnumber + '" value="0" /></li>');
     160        dragAndDrop();
     161};
     162
     163/**
    12164 * Removes menu items from current menu
     165 *
    13166 * @param int o - the id of the menu li to remove.
    14 */
    15 function removeitem(o)
    16 {
    17 
     167 */
     168function removeitem( o ) {
    18169        var todelete = document.getElementById('menu-' + o);
    19 
    20         if (todelete)
    21         {
     170       
     171        if ( todelete ) {
    22172                var parenttodelete = document.getElementById('menu-' + o).parentNode;
    23173        throwaway_node = parenttodelete.removeChild(todelete);
    24174        }
     
    26176        updatepostdata();
    27177};
    28178
    29 /*
     179/**
    30180 * Loads dialog window to edit menu items from current menu
     181 *
    31182 * @param int o - the id of the menu li to edit.
    32 */
    33 function edititem(o)
    34 {
     183 */
     184function edititem( o ) {
     185        itemTitle = jQuery('#title' + o).val();
     186        itemURL = jQuery('#linkurl' + o).val();
     187        itemAnchorTitle = jQuery('#anchortitle' + o).val();
     188        itemNewWindow = jQuery('#newwindow' + o).val();
     189        itemDesc = jQuery('#description' + o).val();
    35190
    36                 itemTitle = jQuery('#title' + o).val();
    37                 itemURL = jQuery('#linkurl' + o).val();
    38                 itemAnchorTitle = jQuery('#anchortitle' + o).val();
    39                 itemNewWindow = jQuery('#newwindow' + o).val();
    40                 itemDesc = jQuery('#description' + o).val();
     191        jQuery('#dialog-confirm').dialog( 'option' , 'itemID' , o )
    41192
    42                 jQuery('#dialog-confirm').dialog( 'option' , 'itemID' , o )
     193        jQuery('#dialog-confirm').dialog('open');
    43194
    44                 jQuery('#dialog-confirm').dialog('open');
    45 
    46                 jQuery('#edittitle').val( itemTitle );
    47                 if ( 'custom' == jQuery( '#linktype' + o ).val() ) {
    48                         jQuery( '#editlink-wrap' ).css( 'display', 'inline' );
    49                 } else {
    50                         jQuery( '#editlink-wrap' ).css( 'display', 'none' );
    51                 }
    52                 jQuery('#editlink').val( itemURL );
    53                 jQuery('#editanchortitle').val( itemAnchorTitle );
    54                 jQuery("#editnewwindow option[value='" + itemNewWindow  + "']").attr('selected', 'selected');
    55                 jQuery('#editdescription').val( itemDesc );
    56 
     195        jQuery('#edittitle').val( itemTitle );
     196        if ( 'custom' == jQuery( '#linktype' + o ).val() ) {
     197                jQuery( '#editlink-wrap' ).css( 'display', 'inline' );
     198        } else {
     199                jQuery( '#editlink-wrap' ).css( 'display', 'none' );
     200        }
     201        jQuery('#editlink').val( itemURL );
     202        jQuery('#editanchortitle').val( itemAnchorTitle );
     203        jQuery("#editnewwindow option[value='" + itemNewWindow  + "']").attr('selected', 'selected');
     204        jQuery('#editdescription').val( itemDesc );
    57205};
    58206
    59 /*
     207/**
    60208 * Prepares menu items for POST
    61 */
    62 function updatepostdata()
    63 {
    64 
     209 */
     210function updatepostdata() {
    65211        var i = 0;
     212       
    66213         jQuery("#custom-nav").find("li").each(function(i) {
    67214                i = i + 1;
    68215        var j = jQuery(this).attr('value');
     
    82229        jQuery(this).find('#parent' + j).attr('name','parent' + i);
    83230        jQuery(this).find('#parent' + j).attr('id','parent' + i);
    84231        if (p) {
    85                 //Do nothing
    86         }
    87         else {
    88                 //reset p to be top level
     232                // Do nothing
     233        } else {
     234                // reset p to be top level
    89235                p = 0;
    90236        }
    91237
     
    122268        jQuery('#li-count').attr('value',i);
    123269
    124270   });
    125 
    126 
    127 
    128271};
    129272
    130273/*
    131  * Adds item from Page, Category, or Custom options menu
     274 * Queues items in perperation for appendToList
     275 *
     276 * @param string id - The menu item's id
    132277 * @param string templatedir - directory of the add, edit, view images.
    133278 * @param string additemtype - Page, Category, or Custom.
    134279 * @param string itemtext - menu text.
     
    137282 * @param int itemparentid - default 0.
    138283 * @param string itemdescription - the description of the menu item.
    139284*/
    140 function appendToList(templatedir,additemtype,itemtext,itemurl,itemid,itemparentid,itemdescription)
    141 {
     285function updateQueue( templatedir, additemtype, itemtext, itemurl, itemid, itemparentid, itemdescription ) {
    142286        var inputvaluevarname = '';
    143287        var inputvaluevarurl = '';
    144288        var inputitemid = '';
     
    146290        var inputdescription = '';
    147291        var inputicon = '';
    148292
    149         if (additemtype == navMenuL10n.custom)
    150         {
     293        if ( additemtype == navMenuL10n.custom ) {
    151294                inputvaluevarname = document.getElementById('custom-menu-item-name').value;
    152295                inputvaluevarurl = document.getElementById('custom-menu-item-url').value;
    153296                inputitemid = '';
    154297                inputparentid = '';
    155298                inputlinktype = 'custom';
    156299                inputdescription = '';
    157         }
    158         else if (additemtype == navMenuL10n.page)
    159         {
     300        } else if ( additemtype == navMenuL10n.page ) {
    160301                inputvaluevarname = htmlentities(itemtext.toString());
    161302                inputvaluevarurl = itemurl.toString();
    162303                inputitemid = itemid.toString();
     
    164305                inputlinktype = 'page';
    165306                inputdescription = htmlentities(itemdescription.toString());
    166307
    167         }
    168         else if (additemtype == navMenuL10n.category)
    169         {
     308        } else if ( additemtype == navMenuL10n.category ) {
    170309                inputvaluevarname = htmlentities(itemtext.toString());
    171310                inputvaluevarurl = itemurl.toString();
    172311                inputitemid = itemid.toString();
    173312                inputparentid = '0';
    174313                inputlinktype = 'category';
    175314                inputdescription = htmlentities(itemdescription.toString());
    176         }
    177         else
    178         {
     315        } else {
    179316                inputvaluevarname = '';
    180317                inputvaluevarname = '';
    181318                inputitemid = '';
     
    184321                inputdescription = '';
    185322        }
    186323
    187         var count=document.getElementById('custom-nav').getElementsByTagName('li').length + 1;
    188 
     324        var count = document.getElementById('custom-nav').getElementsByTagName('li').length + 1;
    189325        var randomnumber = count;
    190 
    191326        var validatetest = 0;
    192327
    193         try
    194         {
    195                 var test=document.getElementById("menu-" + randomnumber.toString()).value;
     328        try {
     329                var test = document.getElementById( 'menu-' + randomnumber.toString() ).value;
    196330        }
    197         catch (err)
    198         {
     331        catch ( err ) {
    199332                validatetest = 1;
    200333        }
    201334
    202         while (validatetest == 0)
    203         {
     335        while ( validatetest == 0 ) {
    204336                randomnumber = randomnumber + 1;
    205 
    206                 try
    207                 {
    208                         var test2=document.getElementById("menu-" + randomnumber.toString()).value;
     337                try {
     338                        var test2 = document.getElementById( 'menu-' + randomnumber.toString() ).value;
    209339                }
    210                 catch (err)
    211                 {
     340                catch ( err ) {
    212341                        validatetest = 1;
    213342                }
    214343        }
     344                       
     345        // Adds or removes the item from the queue
     346        if ( jQuery(menu_item_id = '#menu-item-' + inputitemid).attr('checked') ) {
     347               
     348                // Adds the item in the queue
     349                jQuery('#queue').append('<li id="menu-' + randomnumber + '" value="' + randomnumber + '"><div class="dropzone ui-droppable"></div><dl class="ui-droppable"><dt><span class="title">' + inputvaluevarname + '</span><span class="controls"><span class="type">' + additemtype + '</span><a id="edit' + randomnumber + '" onclick="edititem(' + randomnumber + ')" value="' + randomnumber +'"><img class="edit" alt="Edit Menu Item" title="Edit Menu Item" src="' + templatedir + '/wp-admin/images/ico-edit.png" /></a> <a id="remove' + randomnumber + '" onclick="removeitem(' + randomnumber + ')" value="' + randomnumber +'"><img class="remove" alt="Remove from Custom Menu" title="Remove from Custom Menu" src="' + templatedir + '/wp-admin/images/ico-close.png" /></a> <a href="' + inputvaluevarurl + '" target="_blank"><img alt="View Custom Link" title="View Custom Link" src="' + templatedir + '/wp-admin/images/ico-viewpage.png" /></a></span></dt></dl><a class="hide" href="' + inputvaluevarurl + '">' + inputvaluevarname + '</a><input type="hidden" name="postmenu' + randomnumber + '" id="postmenu' + randomnumber + '" value="' + inputitemid + '" /><input type="hidden" name="parent' + randomnumber + '" id="parent' + randomnumber + '" value="' + inputparentid + '" /><input type="hidden" name="title' + randomnumber + '" id="title' + randomnumber + '" value="' + inputvaluevarname + '" /><input type="hidden" name="linkurl' + randomnumber + '" id="linkurl' + randomnumber + '" value="' + inputvaluevarurl + '" /><input type="hidden" name="description' + randomnumber + '" id="description' + randomnumber + '" value="' + inputdescription + '" /><input type="hidden" name="icon' + randomnumber + '" id="icon' + randomnumber + '" value="' + inputicon + '" /><input type="hidden" name="position' + randomnumber + '" id="position' + randomnumber + '" value="' + randomnumber + '" /><input type="hidden" name="linktype' + randomnumber + '" id="linktype' + randomnumber + '" value="' + inputlinktype + '" /><input type="hidden" name="anchortitle' + randomnumber + '" id="anchortitle' + randomnumber + '" value="' + inputvaluevarname + '" /><input type="hidden" name="newwindow' + randomnumber + '" id="newwindow' + randomnumber + '" value="0" /></li>');
     350        } else {
     351               
     352                // Get the item in the queue
     353                for ( var i = 0; i < jQuery('#queue li input[name^="postmenu"]').length; i++ ) {
     354                        if ( itemid == jQuery('#queue li input[name^="postmenu"]')[i].value ) {
     355                                var menu_queue_id = jQuery('#queue li input[name^="postmenu"]')[i].name.substring( 8, jQuery('#queue li input[name^="postmenu"]')[i].name.length );
     356                        };
     357                };
     358               
     359                // Removes the item from the queue
     360                jQuery('#queue li#menu-' + menu_queue_id).remove();
     361        };
     362};
    215363
    216         //Notification Message
     364/*
     365 * Grabs items from the queue and adds them to the menu.
     366 *
     367 * @param string templatedir - directory of the add, edit, view images.
     368 * @param string additemtype - Page, Category, or Custom.
     369 * @param string itemtext - menu text.
     370 * @param string itemurl - url of the menu.
     371 * @param int itemid - menu id.
     372 * @param int itemparentid - default 0.
     373 * @param string itemdescription - the description of the menu item.
     374*/
     375function addQueuedItemsToMenu( button ) {       
     376        // Notification Message
    217377        jQuery('.maintitle').after('<div id="message" class="updated fade below-h2"><p>Menu Item added!</p></div>');
    218378        jQuery('#message').animate({ opacity: 1.0 },2000).fadeOut(300, function(){ jQuery(this).remove();});
     379       
     380        // Grab items in queue
     381        var items = jQuery('#queue').children();
     382       
     383        // Empty Queue
     384        jQuery('#queue').empty();
     385               
     386        // Appends HTML to the menu
     387        jQuery('#custom-nav').append( items );
     388       
     389        // Uncheck the checkboxes
     390        jQuery(button).offsetParent().find('.list-container input').attr('checked', false);
     391       
     392        updatepostdata();
     393        dragAndDrop();
     394};
    219395
    220         //Appends HTML to the menu
    221         jQuery('#custom-nav').append('<li id="menu-' + randomnumber + '" value="' + randomnumber + '"><div class="dropzone ui-droppable"></div><dl class="ui-droppable"><dt><span class="title">' + inputvaluevarname + '</span><span class="controls"><span class="type">' + additemtype + '</span><a id="edit' + randomnumber + '" onclick="edititem(' + randomnumber + ')" value="' + randomnumber +'"><img class="edit" alt="Edit Menu Item" title="Edit Menu Item" src="' + templatedir + '/wp-admin/images/ico-edit.png" /></a> <a id="remove' + randomnumber + '" onclick="removeitem(' + randomnumber + ')" value="' + randomnumber +'"><img class="remove" alt="Remove from Custom Menu" title="Remove from Custom Menu" src="' + templatedir + '/wp-admin/images/ico-close.png" /></a> <a href="' + inputvaluevarurl + '" target="_blank"><img alt="View Custom Link" title="View Custom Link" src="' + templatedir + '/wp-admin/images/ico-viewpage.png" /></a></span></dt></dl><a class="hide" href="' + inputvaluevarurl + '">' + inputvaluevarname + '</a><input type="hidden" name="postmenu' + randomnumber + '" id="postmenu' + randomnumber + '" value="' + inputitemid + '" /><input type="hidden" name="parent' + randomnumber + '" id="parent' + randomnumber + '" value="' + inputparentid + '" /><input type="hidden" name="title' + randomnumber + '" id="title' + randomnumber + '" value="' + inputvaluevarname + '" /><input type="hidden" name="linkurl' + randomnumber + '" id="linkurl' + randomnumber + '" value="' + inputvaluevarurl + '" /><input type="hidden" name="description' + randomnumber + '" id="description' + randomnumber + '" value="' + inputdescription + '" /><input type="hidden" name="icon' + randomnumber + '" id="icon' + randomnumber + '" value="' + inputicon + '" /><input type="hidden" name="position' + randomnumber + '" id="position' + randomnumber + '" value="' + randomnumber + '" /><input type="hidden" name="linktype' + randomnumber + '" id="linktype' + randomnumber + '" value="' + inputlinktype + '" /><input type="hidden" name="anchortitle' + randomnumber + '" id="anchortitle' + randomnumber + '" value="' + inputvaluevarname + '" /><input type="hidden" name="newwindow' + randomnumber + '" id="newwindow' + randomnumber + '" value="0" /></li>');
    222 
    223         //make menu item draggable
    224         jQuery('#menu-' + randomnumber + '').draggable(
    225         {
     396function dragAndDrop() {
     397        // make menu item draggable
     398        jQuery('#custom-nav li').draggable({
    226399                handle: ' > dl',
    227400                opacity: .8,
    228401                addClasses: false,
     
    230403                zIndex: 100
    231404        });
    232405
    233         //make menu item droppable
    234         jQuery('#menu-' + randomnumber + ' dl, #menu-' + randomnumber + ' .dropzone').droppable({
    235                 accept: '#' + randomnumber + ', #custom-nav li',
     406        // make menu item droppable
     407        jQuery('#custom-nav li dl, #custom-nav li .dropzone').droppable({
     408                accept: '#custom-nav li',
    236409                tolerance: 'pointer',
    237                 drop: function(e, ui)
    238                 {
     410                drop: function(e, ui) {
    239411                        var li = jQuery(this).parent();
    240412                        var child = !jQuery(this).hasClass('dropzone');
    241                         //Append UL to first child
    242                         if (child && li.children('ul').length == 0)
    243                         {
    244                                 li.append('<ul/>');
     413                       
     414                        // Append UL to first child
     415                        if ( child && li.children('ul').length == 0 ) {
     416                                li.append( '<ul/>' );
    245417                        }
    246                         //Make it draggable
    247                         if (child)
    248                         {
    249                                 li.children('ul').append(ui.draggable);
     418                        // Make it draggable
     419                        if ( child ) {
     420                                li.children('ul').append( ui.draggable );
     421                        } else {
     422                                li.before( ui.draggable );
    250423                        }
    251                         else
    252                         {
    253                                 li.before(ui.draggable);
    254                         }
    255424
    256425                        li.find('dl,.dropzone').css({ backgroundColor: '', borderColor: '' });
    257426
    258427                        var draggablevalue = ui.draggable.attr('value');
    259                 var droppablevalue = li.attr('value');
    260                 li.find('#menu-' + draggablevalue).find('#parent' + draggablevalue).val(droppablevalue);
    261                 jQuery(this).parent().find("dt").removeAttr('style');
    262                 jQuery(this).parent().find("div:first").removeAttr('style');
     428                        var droppablevalue = li.attr('value');
     429                       
     430                        li.find('#menu-' + draggablevalue).find('#parent' + draggablevalue).val(droppablevalue);
     431                        jQuery(this).parent().find("dt").removeAttr('style');
     432                        jQuery(this).parent().find("div:first").removeAttr('style');
    263433
    264434                },
    265                 over: function()
    266                 {
    267                         //Add child
    268                         if (jQuery(this).attr('class') == 'dropzone ui-droppable')
    269                         {
     435                over: function() {
     436                        // Add child
     437                        if ( jQuery(this).attr('class') == 'dropzone ui-droppable' ) {
    270438                                jQuery(this).parent().find("div:first").css('background', 'none').css('height', '50px');
    271439                        }
    272                         //Add above
    273                         else if (jQuery(this).attr('class') == 'ui-droppable')
    274                         {
     440                        // Add above
     441                        else if ( jQuery(this).attr('class') == 'ui-droppable' ) {
    275442                                jQuery(this).parent().find("dt:first").css('background', '#d8d8d8');
     443                        } else {
     444                                        // do nothing
    276445                        }
    277                         //do nothing
    278                         else {
    279 
    280                         }
    281446                        var parentid = jQuery(this).parent().attr('id');
    282447
    283448                },
    284                 out: function()
    285                 {
     449                out: function() {
    286450                        jQuery(this).parent().find("dt").removeAttr('style');
    287451                        jQuery(this).parent().find("div:first").removeAttr('style');
    288452                        jQuery(this).filter('.dropzone').css({ borderColor: '' });
    289453                }
    290         });
    291 
    292         updatepostdata();
    293 };
    294  No newline at end of file
     454                }
     455        );
     456}
     457 No newline at end of file
  • wp-admin/nav-menus.php

     
    3838$updated = false;
    3939$advanced_option_descriptions = 'no';
    4040
     41// Create the a link_category term to store all custom links
     42if ( !is_term( __('Custom Menu Links'), 'link_category' ) ) {
     43        wp_create_term( __('Custom Menu Links'), 'link_category' );
     44}
     45
     46// Get all Custom Menu Links
     47$custom_menu_links = get_bookmarks( array( 'category_name' => __('Custom Menu Links') ) );
     48
    4149// Check which menu is selected and if menu is in edit already
    4250if ( isset( $_GET['edit-menu'] ) ) {
    4351        $menu_selected_id = (int) $_GET['edit-menu'];
     
    164172        <?php echo $messages_div; ?>
    165173        <div class="hide-if-js error"><p><?php _e('You do not have JavaScript enabled in your browser. Please enable it to access the Menus functionality.'); ?></p></div>
    166174       
    167        
    168         <form onsubmit="updatepostdata()" action="<?php echo admin_url( 'nav-menus.php' ); ?>" method="post" enctype="multipart/form-data">
     175        <form onsubmit="updatepostdata();" action="<?php echo admin_url( 'nav-menus.php' ); ?>" method="post" enctype="multipart/form-data">
    169176                <?php if ( ! empty( $custom_menus ) && count( $custom_menus ) > 1 ) : ?>
    170177                <ul class="subsubsub">
    171178                        <?php
     
    201208                                                <h3 class="hndle"><?php esc_html_e('Add a Custom Link'); ?></h3>
    202209                                                <div class="inside">
    203210                                                       
    204                                                         <p class="howto"><label for="custom-menu-item-url"><input id="custom-menu-item-url" type="text" class="widefat code" value="http://" /><?php _e('URL'); ?></label></p>
     211                                                        <p class="howto"><label for="custom-menu-item-url"><span style="padding-right: 8px;"><?php _e('URL'); ?></span><input id="custom-menu-item-url" type="text" class="code" value="http://" /></label></p>
    205212                                                       
    206213                                                        <?php $template_dir = get_bloginfo('url'); ?>
    207214                                                        <input type="hidden" id="template-dir" value="<?php echo esc_attr($template_dir); ?>" />
    208215                                                       
    209                                                         <p class="howto"><label for="custom-menu-item-name"><input id="custom-menu-item-name" type="text" class="widefat regular-text" value="<?php echo esc_attr( __('Menu Item') ); ?>" /><?php _e('Text'); ?></label></p>
     216                                                        <p class="howto"><label for="custom-menu-item-name"><span><?php _e('Text'); ?></span><input id="custom-menu-item-name" type="text" class="regular-text" value="<?php echo esc_attr( __('Menu Item') ); ?>" /></label></p>
    210217                                                       
    211218                                                        <label class="howto" for="custom_menu_item_description" <?php if ($advanced_option_descriptions == 'no') { ?>style="display:none;"<?php } ?>>
    212219                                                                <input id="custom_menu_item_description" type="text" class="widefat regular-text" value="<?php esc_attr_e('A description'); ?>" <?php if ($advanced_option_descriptions == 'no') { ?>style="display:none;"<?php } ?> onfocus="jQuery('#custom_menu_item_description').attr('value','');" />
     
    215222                                                       
    216223                                                        <?php if ( 'no' != $advanced_option_descriptions ) { echo '<br />'; } ?>
    217224                                                       
    218                                                         <a class="addtomenu button" onclick="appendToList('<?php echo $template_dir; ?>','<?php echo esc_js( _x('Custom', 'menu nav item type') ); ?>','','','','0','');jQuery('#custom-menu-item-name').attr('value','<?php echo esc_js( __('Menu Item') ); ?>');jQuery('#custom_menu_item_description').attr('value','<?php echo esc_js( __('A description') ); ?>');"><?php _e('Add Link'); ?></a>
     225                                        <?php if ( $custom_menu_links ) : ?>
     226                                                        <p id="add-buttons-actions" class="buttons-actions">
     227                                                                <a class="show-all button"><?php _e('View All'); ?></a>
     228                                                                <a class="hide-all button"><?php _e('Hide All'); ?></a>
     229                                                        </p>
     230                                        <?php endif; ?>
     231                                        <?php if ( $custom_menu_links ) : ?>
     232                                                        <div id="available-links" class="list-wrap">
     233                                                                <div class="list-container">
     234                                                                        <ul class="list">
     235                                                                                <?php
     236                                                                                        foreach ( $custom_menu_links as $link ) : ?>
     237                                                                                        <li>
     238                                                                                                <dl>
     239                                                                                                        <dt>
     240                                                                                                                <label class="title"><input type="checkbox" id="link-<?php echo esc_attr($link->link_id); ?>" name="<?php echo esc_attr($link->link_name); ?>" value="<?php echo esc_attr($link->link_url); ?>" /><?php echo esc_html($link->link_name); ?></label>
     241                                                                                                        </dt>
     242                                                                                                </dl>
     243                                                                                        </li>
     244                                                                                        <?php
     245                                                                                        endforeach;
     246                                                                                ?>
     247                                                                        </ul>
     248                                                                </div><!-- /.list-container-->
     249                                                        </div><!-- /#available-links-->
     250                                                <?php endif; ?>
     251                                                        <p id="add-create-link" class="buttons-actions"><a class="button"><?php _e('Add'); ?></a></p>
    219252                                                        <br class="clear" />
    220253                                                </div><!-- /.inside-->
    221254                                        </div><!-- /#add-custom-link-->
     
    226259                                                <div class="inside">
    227260                                                        <?php
    228261                                                                $pages_args = array(
    229                                                                         'child_of' => 0,
    230                                                                         'sort_order' => 'ASC',
    231                                                                         'sort_column' => 'post_title',
    232                                                                         'hierarchical' => 1,
    233                                                                         'exclude' => '',
    234                                                                         'include' => '',
    235                                                                         'meta_key' => '',
    236                                                                         'meta_value' => '',
    237                                                                         'authors' => '',
    238                                                                         'parent' => -1,
    239                                                                         'exclude_tree' => '',
    240                                                                         'number' => '',
    241                                                                         'offset' => 0
     262                                                                        'child_of' => 0, 'sort_order' => 'ASC', 'sort_column' => 'post_title', 'hierarchical' => 1,
     263                                                                        'exclude' => '', 'include' => '', 'meta_key' => '', 'meta_value' => '', 'authors' => '',
     264                                                                        'parent' => -1, 'exclude_tree' => '', 'number' => '', 'offset' => 0
    242265                                                                );
    243266                                                                $page_name = '';
    244267                                                                $pages_array = get_pages($pages_args);
     
    252275                                                        ?>
    253276                                                        <script type="text/javascript" charset="<?php bloginfo('charset'); ?>">
    254277                                                                jQuery(document).ready(function(){
    255                                                                         var posts = "<?php echo esc_js( $page_name ); ?>".split("|");
    256                                                                         jQuery("#page-search").autocomplete(posts);
    257                                                                         jQuery("#page-search").result(function(event, data, formatted) {
    258                                                                                 jQuery('#existing-pages').css('display','block');
    259                                                                                 jQuery("#existing-pages dt:contains('" + data + "')").css("display", "block");
    260                                                                                 jQuery('#show-pages').hide();
    261                                                                                 jQuery('#hide-pages').show();
     278                                                                        var posts = "<?php echo esc_js( $page_name ); ?>".split('|');
     279                                                                        jQuery('#add-pages .quick-search').autocomplete(posts);
     280                                                                        jQuery('#add-pages .quick-search').result(function(event, data, formatted) {
     281                                                                                jQuery('#add-pages .list-container').css('display','block');
     282                                                                                jQuery("#add-pages .list-container dt:contains('" + data + "')").css('display','block');
     283                                                                                jQuery('#add-pages .show-all').hide();
     284                                                                                jQuery('#add-pages .hide-all').show();
    262285                                                                        });
    263                                                                         jQuery('#existing-pages').css('display','none');
    264286                                                                });
    265287                                                        </script>
    266                                                         <input type="text" onfocus="jQuery('#page-search').attr('value','');" id="page-search" class="regular-text" value="<?php esc_attr_e('Search Pages'); ?>" />
    267 
    268                                                         <a id="show-pages" style="cursor:pointer;" onclick="jQuery('#existing-pages').css('display','block');jQuery('#page-search').attr('value','');jQuery('#existing-pages dt').css('display','block');jQuery('#show-pages').hide();jQuery('#hide-pages').show();"><?php _e('View All'); ?></a>
    269                                                         <a id="hide-pages" style="cursor:pointer;" onclick="jQuery('#existing-pages').css('display','none');jQuery('#page-search').attr('value','Search Pages');jQuery('#existing-pages dt').css('display','none');jQuery('#show-pages').show();jQuery('#hide-pages').hide();"><?php _e('Hide All'); ?></a>
    270 
    271                                                         <script type="text/javascript">
    272                                                                 jQuery('#hide-pages').hide();
    273                                                         </script>
     288                                                        <p class="buttons-actions">
     289                                                                <input type="text" class="quick-search regular-text" value="<?php esc_attr_e('Search Pages'); ?>" />
     290                                                                <a class="show-all button"><?php _e('View All'); ?></a>
     291                                                                <a class="hide-all button"><?php _e('Hide All'); ?></a>
     292                                                        </p>
    274293                                                       
    275                                                        
    276                                                         <div id="existing-pages" class="list-container">
    277                                                                 <ul class="list">
    278                                                                 <?php $items_counter = wp_nav_menu_get_pages( 0,'default' ); ?>
    279                                                                 </ul>
    280                                                         </div><!-- /.list-container-->
     294                                                        <div id="existing-pages" class="list-wrap">
     295                                                                <div class="list-container">
     296                                                                        <ul class="list">
     297                                                                        <?php $items_counter = wp_nav_menu_get_pages( 0,'default' ); ?>
     298                                                                        </ul>
     299                                                                </div><!-- /.list-container-->
     300                                                                <p class="submit"><a class="button" onclick="addQueuedItemsToMenu(this);">Add</a></p>
     301                                                        </div><!-- /#existing-pages-->
    281302                                                        <br class="clear" />
    282303                                                </div><!-- /.inside-->
    283304                                        </div><!--END #add-pages-->
     
    311332                                                        ?>
    312333                                                        <script type="text/javascript" charset="<?php bloginfo('charset'); ?>">
    313334                                                                jQuery(document).ready(function(){
    314                                                                         var categories = "<?php echo esc_js($cat_name); ?>".split("|");
    315                                                                         jQuery("#cat-search").autocomplete(categories);
    316                                                                         jQuery("#cat-search").result(function(event, data, formatted) {
    317                                                                                 jQuery('#existing-categories').css('display','block');
    318                                                                                 jQuery("#existing-categories dt:contains('" + data + "')").css("display", "block");
    319                                                                                 jQuery('#show-cats').hide();
    320                                                                                 jQuery('#hide-cats').show();
     335                                                                        var categories = "<?php echo esc_js($cat_name); ?>".split('|');
     336                                                                        jQuery('#add-categories .quick-search').autocomplete(categories);
     337                                                                        jQuery('#add-categories .quick-search').result(function(event, data, formatted) {
     338                                                                                jQuery('#add-categories .list-container').css('display','block');
     339                                                                                jQuery("#add-categories .list-container dt:contains('" + data + "')").css('display','block');
     340                                                                                jQuery('#add-categories .show-all').hide();
     341                                                                                jQuery('#add-categories .hide-all').show();
    321342                                                                        });
    322                                                                         jQuery('#existing-categories').css('display','none');
    323343                                                                });
    324344                                                        </script>
    325 
    326                                                         <input type="text" onfocus="jQuery('#cat-search').attr('value','');" id="cat-search" class="regular-text" value="<?php esc_attr_e('Search Categories'); ?>" />
    327 
    328                                                         <a id="show-cats" style="cursor:pointer;" onclick="jQuery('#existing-categories').css('display','block');jQuery('#cat-search').attr('value','');jQuery('#existing-categories dt').css('display','block');jQuery('#show-cats').hide();jQuery('#hide-cats').show();"><?php _e('View All'); ?></a>
    329                                                         <a id="hide-cats" style="cursor:pointer;" onclick="jQuery('#existing-categories').css('display','none');jQuery('#cat-search').attr('value','Search Categories');jQuery('#existing-categories dt').css('display','none');jQuery('#show-cats').show();jQuery('#hide-cats').hide();"><?php _e('Hide All'); ?></a>
    330 
    331                                                         <script type="text/javascript">
    332                                                                 jQuery('#hide-cats').hide();
    333                                                         </script>
    334 
    335                                                         <div id="existing-categories" class="list-container">
    336                                                                 <ul class="list">
    337                                                                         <?php $items_counter = wp_nav_menu_get_categories( $items_counter, 'default' ); ?>
    338                                                                 </ul>
    339                                                         </div><!-- /.list-container-->
     345                                                        <p class="buttons-actions">
     346                                                                <input type="text" class="quick-search regular-text" value="<?php esc_attr_e('Search Categories'); ?>" />
     347                                                                <a class="show-all button"><?php _e('View All'); ?></a>
     348                                                                <a class="hide-all button"><?php _e('Hide All'); ?></a>
     349                                                        </p>
     350                                                       
     351                                                        <div id="existing-categories" class="list-wrap">
     352                                                                <div class="list-container">
     353                                                                        <ul class="list">
     354                                                                                <?php $items_counter = wp_nav_menu_get_categories( $items_counter, 'default' ); ?>
     355                                                                        </ul>
     356                                                                </div><!-- /.list-container-->
     357                                                                <p class="submit"><a class="button" onclick="addQueuedItemsToMenu(this);">Add</a></p>
     358                                                        </div><!-- /#existing-categories-->
    340359                                                        <br class="clear" />
    341360                                                </div><!-- /.inside-->
    342361                                        </div><!--END #add-categories-->
     
    361380                                                                }
    362381                                                                ?>
    363382                                                                </ul><!-- /#custom-nav-->
     383                                                               
     384                                                                <div id="queue" class="hide">
     385                                                                </div><!--/#queue-->
    364386                                                        </div><!-- /.inside -->
    365387                                                <!-- /#nav-menu-canvas .postbox-->
    366388                                                </div>
     
    368390                                                        <script type="text/javascript">
    369391                                                                updatepostdata();
    370392                                                        </script>
    371                                                         <input id="save_bottom" name="save_bottom" type="submit" value="<?php esc_attr_e('Save All Changes'); ?>" />
    372                                                         <input id="delete-menu" name="delete-menu" type="submit" value="<?php esc_attr_e('Delete This Menu'); ?>" />
     393                                                        <input class="button-primary" id="save_bottom" name="save_bottom" type="submit" value="<?php esc_attr_e('Save All Changes'); ?>" />
     394                                                        <input class="delete" id="delete-menu" name="delete-menu" type="submit" value="<?php esc_attr_e('Delete This Menu'); ?>" />
    373395                                                </p>
    374396                                               
    375397                                        <?php else : ?>
     
    395417        </span>
    396418        <span id="editdescription-wrap">
    397419        <input id="editdescription" type="text" name="editdescription" value="" <?php if ($advanced_option_descriptions == 'no') { ?>style="display:none;"<?php } ?> /><label class="editlabel" for="editdescription" <?php if ($advanced_option_descriptions == 'no') { ?>style="display:none;"<?php } ?> ><?php _e('Description'); ?></label><br /></span>
    398 </div>
     420</div><!-- /#dialog-confirm-->
    399421
    400422<?php
    401423
  • wp-admin/css/nav-menu.css

     
    1 .maintitle{margin:0 0 20px 0!important;}.logo{vertical-align:middle;margin:0 10px 0 0;}h2.heading{margin:32px 0 10px 0;}.checkboxes{float:right;margin:10px 12px 0 0;}#menus-container{clear:both;}#nav-container .inside{padding:0 10px 10px;}#menus-container .submit{padding:0;}#menu-settings-column .inside{padding:10px;}#custom-nav ul{width:100%;}#custom-nav li{margin:0;}.ui-draggable-dragging{width:500px;}#custom-nav li dl dt{-webkit-border-bottom-left-radius:6px;-webkit-border-bottom-right-radius:6px;-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top-left-radius:6px;border-top-right-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-bottomright:6px;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;border:1px solid #E6E6E6;position:relative;padding-left:10px;background-color:#f1f1f1;height:35px;line-height:35px;}#custom-nav li dl dt:hover{cursor:move;}#custom-nav li dl dt .controls{position:absolute;right:15px;top:-1px;}#custom-nav li dl dt img{vertical-align:middle;}#custom-nav li .title{background:url(../images/ico-arrow.png) no-repeat 4px 5px;background-position:center left;padding-left:15px;}#custom-nav li ul li{margin-left:20px;opacity:.7;}#custom-nav li ul li ul li{opacity:.9;}#custom-nav li ul li ul li ul li{opacity:.9;}#custom-nav li ul li ul li ul li ul li{opacity:.95;}#add-custom-link .howto{font-size:11px;}#add-custom-link .widefat{width:85%;margin-right:5px;}.list-container{max-height:203px;overflow-y:auto;padding-left:2px;padding-right:5px;}.list{zoom:1;}.list li{margin:0;}.list dt{display:none;margin:0;border-bottom:1px solid #e3e3e3;overflow:hidden;}.list dt{background:url(../images/ico-add.png) no-repeat right;}.list li .title{cursor:pointer;display:block;width:95%;padding:5px 0;}.list li .title{background:url(../images/ico-arrow.png) no-repeat 4px 13px;background-position:center left;padding-left:5%;}.list li ul li .title{margin-left:14px;}.list li ul li ul li .title{margin-left:28px;}.list li ul li ul li ul li .title{margin-left:42px;}.list li ul li ul li ul li ul li .title{margin-left:56px;}.list li ul li ul li ul li ul li ul li .title{margin-left:70px;}.list li ul li ul li ul li ul li ul li ul li .title{margin-left:84px;}.list li ul li ul li ul li ul li ul li ul li ul li .title{margin-left:98px;}.list li ul li ul li ul li ul li ul li ul li ul li ul li .title{margin-left:112px;}img.remove,img.edit{cursor:pointer;margin:0 5px 0 0;}.dropzone{height:7px;margin:3px 0 3px 0;}.hide{display:none;}.type{text-transform:uppercase;font-size:11px;color:#999;padding-right:10px;}#menu_select{width:170px;}#dialog-confirm label{padding-left:10px;}.ui-dialog{background:#fff;border:1px solid #555;-moz-box-shadow:0 4px 30px #000;}.ui-dialog-titlebar{color:#CFCFCF;font-family:"Lucida Grande",Verdana,Arial,sans-serif;padding:6px 10px 6px;background-color:#222!important;border:none!important;-moz-border-radius:none!important;}#dialog-confirm{height:168px!important;padding:20px 10px 10px;}#dialog-confirm input{margin:0 0 15px 0;width:280px;}#dialog-confirm select{margin:0 0 15px 0;}.ui-dialog-buttonpane{padding:10px;}.ui-dialog-buttonpane button{margin:0 10px 0 0;background:#F2F2F2;text-shadow:0 1px 0 #FFF;border-color:#BBB;color:#464646;-moz-border-radius-bottomleft:11px;-moz-border-radius-bottomright:11px;-moz-border-radius-topleft:11px;-moz-border-radius-topright:11px;border-style:solid;border-width:1px;cursor:pointer;font-size:11px!important;line-height:14px;padding:2px 8px;text-decoration:none;}.ui-dialog-buttonpane button:hover{color:#000;border-color:#666;}.ui-icon{display:none;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.60;filter:Alpha(Opacity=60);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.60;filter:Alpha(Opacity=60);-moz-border-radius:8px;-webkit-border-radius:8px;}
    2  No newline at end of file
     1.maintitle{margin:0 0 20px 0!important;}.logo{vertical-align:middle;margin:0 10px 0 0;}h2.heading{margin:32px 0 10px 0;}.checkboxes{float:right;margin:10px 12px 0 0;}#menus-container{clear:both;}#nav-container .inside{padding:0 10px 10px;}#menus-container .submit{padding:0;}#menu-settings-column .inside{padding:10px;}#custom-nav ul{width:100%;}#custom-nav li{margin:0;}.ui-draggable-dragging{width:500px;}#custom-nav li dl dt{-webkit-border-bottom-left-radius:6px;-webkit-border-bottom-right-radius:6px;-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top-left-radius:6px;border-top-right-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-bottomright:6px;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;border:1px solid #E6E6E6;position:relative;padding-left:10px;background-color:#f1f1f1;height:35px;line-height:35px;}#custom-nav li dl dt:hover{cursor:move;}#custom-nav li dl dt .controls{position:absolute;right:15px;top:-1px;}#custom-nav li dl dt img{vertical-align:middle;}#custom-nav li .title{background:url(../images/ico-arrow.png) no-repeat 4px 5px;background-position:center left;padding-left:15px;}#custom-nav li ul li{margin-left:20px;opacity:.7;}#custom-nav li ul li ul li{opacity:.9;}#custom-nav li ul li ul li ul li{opacity:.9;}#custom-nav li ul li ul li ul li ul li{opacity:.95;}p .button{float:right;}#add-buttons-actions{float:left;}#add-create-link{float:right;}.buttons-actions{margin:0;}#available-links{margin:15px 0 0;}#available-links dt{display:block;}#add-custom-link .howto{font-size:11px;}#add-custom-link label span{padding-right:5px;}#custom-menu-item-url,#custom-menu-item-name{width:227px;}.show-all,.hide-all{cursor:pointer;}.hide-all{display:none;}.list-wrap{display:none;clear:both;}.list-container{max-height:200px;overflow-y:auto;padding:10px 10px 5px;border:1px solid #DFDFDF;margin:10px 0 10px;-moz-border-radius:4px;}.postbox p.submit{margin-bottom:0;}.list{zoom:1;}.list li{margin:0;}.list dt{display:none;margin:0;overflow:hidden;margin-bottom:5px;}.list li .title{cursor:pointer;display:block;}.list li .title input{margin-right:3px;margin-top:-3px;}.list li ul li .title{margin-left:14px;}.list li ul li ul li .title{margin-left:28px;}.list li ul li ul li ul li .title{margin-left:42px;}.list li ul li ul li ul li ul li .title{margin-left:56px;}.list li ul li ul li ul li ul li ul li .title{margin-left:70px;}.list li ul li ul li ul li ul li ul li ul li .title{margin-left:84px;}.list li ul li ul li ul li ul li ul li ul li ul li .title{margin-left:98px;}.list li ul li ul li ul li ul li ul li ul li ul li ul li .title{margin-left:112px;}img.remove,img.edit{cursor:pointer;margin:0 5px 0 0;}.dropzone{height:7px;margin:3px 0 3px 0;}.hide{display:none;}.type{text-transform:uppercase;font-size:11px;color:#999;padding-right:10px;}#menu_select{width:170px;}#dialog-confirm label{padding-left:10px;}.ui-dialog{background:#fff;border:1px solid #555;-moz-box-shadow:0 4px 30px #000;}.ui-dialog-titlebar{color:#CFCFCF;font-family:"Lucida Grande",Verdana,Arial,sans-serif;padding:6px 10px 6px;background-color:#222!important;border:none!important;-moz-border-radius:none!important;}#dialog-confirm{height:168px!important;padding:20px 10px 10px;}#dialog-confirm input{margin:0 0 15px 0;width:280px;}#dialog-confirm select{margin:0 0 15px 0;}.ui-dialog-buttonpane{padding:10px;}.ui-dialog-buttonpane button{margin:0 10px 0 0;background:#F2F2F2;text-shadow:0 1px 0 #FFF;border-color:#BBB;color:#464646;-moz-border-radius-bottomleft:11px;-moz-border-radius-bottomright:11px;-moz-border-radius-topleft:11px;-moz-border-radius-topright:11px;border-style:solid;border-width:1px;cursor:pointer;font-size:11px!important;line-height:14px;padding:2px 8px;text-decoration:none;}.ui-dialog-buttonpane button:hover{color:#000;border-color:#666;}.ui-icon{display:none;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.60;filter:Alpha(Opacity=60);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.60;filter:Alpha(Opacity=60);-moz-border-radius:8px;-webkit-border-radius:8px;}
     2 No newline at end of file
  • wp-admin/css/nav-menu.dev.css

     
    3232#custom-nav li ul li ul li ul li   { opacity: .9;}
    3333#custom-nav li ul li ul li ul li ul li   { opacity: .95; }
    3434
     35p .button { float: right; }
     36
     37/* Custom Links */
     38#add-buttons-actions { float: left; }
     39#add-create-link { float: right; }
     40
     41.buttons-actions { margin: 0; }
     42
     43#available-links { margin: 15px 0px 0px; }
     44#available-links dt { display: block; }
    3545#add-custom-link .howto { font-size: 11px; }
    36 #add-custom-link .widefat { width: 85%; margin-right: 5px; }
     46#add-custom-link label span { padding-right: 5px; }
     47#custom-menu-item-url, #custom-menu-item-name { width: 227px; }
    3748
    38 .list-container { max-height: 203px; overflow-y: auto; padding-left: 2px; padding-right: 5px; }
     49/* Pages/Categories */
     50.show-all, .hide-all { cursor: pointer; }
     51.hide-all { display: none; }
     52.quick-search {  }
    3953
     54.list-wrap { display: none; clear: both; }
     55
     56.list-container { max-height: 200px; overflow-y: auto; padding: 10px 10px 5px; border: 1px solid #DFDFDF; margin: 10px 0px 10px; -moz-border-radius: 4px; }
     57
     58.postbox p.submit { margin-bottom: 0; }
     59
    4060.list { zoom: 1; }
    4161.list li { margin: 0; }
    42 .list dt { display: none; margin: 0; border-bottom: 1px solid #e3e3e3; overflow: hidden; }
    43 .list dt { background: url(../images/ico-add.png) no-repeat right; }
     62.list dt { display: none; margin: 0; overflow: hidden; margin-bottom: 5px; }
    4463
    45 .list li .title { cursor: pointer; display: block; width: 95%; padding: 5px 0px; }
    46 .list li .title { background: url(../images/ico-arrow.png) no-repeat 4px 13px; background-position: center left; padding-left: 5%; }
     64.list li .title { cursor: pointer; display: block; }
     65.list li .title input { margin-right: 3px; margin-top: -3px; }
    4766
    4867/* Visually shows the menu item hierarchy. */
    4968.list li ul li .title  { margin-left: 14px; }