WordPress.org

Make WordPress Core

Changeset 27494


Ignore:
Timestamp:
03/11/14 00:03:54 (3 years ago)
Author:
azaozz
Message:

wpLink: stop using UI dialog, restyle the modal, add better responsive behaviour.
Fix UI dialog styling to match the rest of the admin styling.
Props avryl, see #26952

Location:
trunk/src/wp-includes
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-editor.php

    r27447 r27494  
    493493        if ( in_array('wplink', self::$plugins, true) || in_array('link', self::$qt_buttons, true) ) { 
    494494            wp_enqueue_script('wplink'); 
    495             wp_enqueue_script('wpdialogs'); 
    496             wp_enqueue_style('wp-jquery-ui-dialog'); 
    497495        } 
    498496 
     
    10421040     */ 
    10431041    public static function wp_link_dialog() { 
    1044     ?> 
    1045     <div style="display:none;"> 
    1046     <form id="wp-link" tabindex="-1"> 
    1047     <?php wp_nonce_field( 'internal-linking', '_ajax_linking_nonce', false ); ?> 
    1048     <div id="link-selector"> 
    1049         <div id="link-options"> 
    1050             <p class="howto"><?php _e( 'Enter the destination URL' ); ?></p> 
    1051             <div> 
    1052                 <label><span><?php _e( 'URL' ); ?></span><input id="url-field" type="text" name="href" /></label> 
    1053             </div> 
    1054             <div> 
    1055                 <label><span><?php _e( 'Title' ); ?></span><input id="link-title-field" type="text" name="linktitle" /></label> 
    1056             </div> 
    1057             <div class="link-target"> 
    1058                 <label><input type="checkbox" id="link-target-checkbox" /> <?php _e( 'Open link in a new window/tab' ); ?></label> 
    1059             </div> 
    1060         </div> 
    1061         <?php $show_internal = '1' == get_user_setting( 'wplink', '0' ); ?> 
    1062         <p class="howto toggle-arrow <?php if ( $show_internal ) echo 'toggle-arrow-active'; ?>" id="internal-toggle"><?php _e( 'Or link to existing content' ); ?></p> 
    1063         <div id="search-panel"<?php if ( ! $show_internal ) echo ' style="display:none"'; ?>> 
    1064             <div class="link-search-wrapper"> 
    1065                 <label> 
    1066                     <span class="search-label"><?php _e( 'Search' ); ?></span> 
    1067                     <input type="search" id="search-field" class="link-search-field" autocomplete="off" /> 
    1068                     <span class="spinner"></span> 
    1069                 </label> 
    1070             </div> 
    1071             <div id="search-results" class="query-results"> 
    1072                 <ul></ul> 
    1073                 <div class="river-waiting"> 
    1074                     <span class="spinner"></span> 
     1042        $search_panel_visible = '1' == get_user_setting( 'wplink', '0' ) ? ' class="search-panel-visible"' : ''; 
     1043 
     1044        ?> 
     1045        <div id="wp-link-backdrop"></div> 
     1046        <div id="wp-link-wrap"<?php echo $search_panel_visible; ?>> 
     1047        <form id="wp-link" tabindex="-1"> 
     1048        <?php wp_nonce_field( 'internal-linking', '_ajax_linking_nonce', false ); ?> 
     1049        <div id="link-modal-title"> 
     1050            <?php _e( 'Insert/edit link' ) ?> 
     1051            <div id="wp-link-close" tabindex="0"></div> 
     1052        </div> 
     1053        <div id="link-selector"> 
     1054            <div id="link-options"> 
     1055                <p class="howto"><?php _e( 'Enter the destination URL' ); ?></p> 
     1056                <div> 
     1057                    <label><span><?php _e( 'URL' ); ?></span><input id="url-field" type="text" name="href" /></label> 
     1058                </div> 
     1059                <div> 
     1060                    <label><span><?php _e( 'Title' ); ?></span><input id="link-title-field" type="text" name="linktitle" /></label> 
     1061                </div> 
     1062                <div class="link-target"> 
     1063                    <label><input type="checkbox" id="link-target-checkbox" /> <?php _e( 'Open link in a new window/tab' ); ?></label> 
    10751064                </div> 
    10761065            </div> 
    1077             <div id="most-recent-results" class="query-results"> 
    1078                 <div class="query-notice"><em><?php _e( 'No search term specified. Showing recent items.' ); ?></em></div> 
    1079                 <ul></ul> 
    1080                 <div class="river-waiting"> 
    1081                     <span class="spinner"></span> 
     1066            <p class="howto" id="wp-link-search-toggle"><?php _e( 'Or link to existing content' ); ?></p> 
     1067            <div id="search-panel"> 
     1068                <div class="link-search-wrapper"> 
     1069                    <label> 
     1070                        <span class="search-label"><?php _e( 'Search' ); ?></span> 
     1071                        <input type="search" id="search-field" class="link-search-field" autocomplete="off" /> 
     1072                        <span class="spinner"></span> 
     1073                    </label> 
     1074                </div> 
     1075                <div id="search-results" class="query-results"> 
     1076                    <ul></ul> 
     1077                    <div class="river-waiting"> 
     1078                        <span class="spinner"></span> 
     1079                    </div> 
     1080                </div> 
     1081                <div id="most-recent-results" class="query-results"> 
     1082                    <div class="query-notice"><em><?php _e( 'No search term specified. Showing recent items.' ); ?></em></div> 
     1083                    <ul></ul> 
     1084                    <div class="river-waiting"> 
     1085                        <span class="spinner"></span> 
     1086                    </div> 
    10821087                </div> 
    10831088            </div> 
    10841089        </div> 
    1085     </div> 
    1086     <div class="submitbox"> 
    1087         <div id="wp-link-update"> 
    1088             <input type="submit" value="<?php esc_attr_e( 'Add Link' ); ?>" class="button-primary" id="wp-link-submit" name="wp-link-submit"> 
     1090        <div class="submitbox"> 
     1091            <div id="wp-link-update"> 
     1092                <input type="submit" value="<?php esc_attr_e( 'Add Link' ); ?>" class="button-primary" id="wp-link-submit" name="wp-link-submit"> 
     1093            </div> 
    10891094        </div> 
    1090         <div id="wp-link-cancel"> 
    1091             <a class="submitdelete deletion" href="#"><?php _e( 'Cancel' ); ?></a> 
     1095        </form> 
    10921096        </div> 
    1093     </div> 
    1094     </form> 
    1095     </div> 
    1096     <?php 
     1097        <?php 
    10971098    } 
    10981099} 
  • trunk/src/wp-includes/css/buttons.css

    r27282 r27494  
    11/* ---------------------------------------------------------------------------- 
    22 
     3NOTE: If you edit this file, you should make sure that the CSS rules for 
     4buttons in the following files are updated. 
     5 
     6* jquery-ui-dialog.css 
     7* editor.css 
    38 
    49WordPress-style Buttons 
  • trunk/src/wp-includes/css/editor.css

    r27460 r27494  
    314314    color: #fff; 
    315315    text-shadow: none; 
     316    padding: 0; 
     317    line-height: 26px; 
    316318} 
    317319 
     
    336338} 
    337339 
     340/* Remove the dotted border on :focus and the extra padding in Firefox */ 
     341.mce-window .mce-btn::-moz-focus-inner { 
     342    border-width: 1px 0; 
     343    border-style: solid none; 
     344    border-color: transparent; 
     345    padding: 0; 
     346} 
     347 
    338348.mce-window .mce-btn:hover { 
    339349    background: #fafafa; 
     
    367377    background: #2ea2cc; 
    368378    border-color: #0074a2; 
    369     -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15); 
    370     box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15); 
    371     color: #fff; 
     379    -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15); 
     380    box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15); 
     381    color: #fff; 
     382    text-decoration: none; 
    372383} 
    373384 
     
    375386    background: #1e8cbe; 
    376387    border-color: #0074a2; 
    377     -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6); 
    378     box-shadow: inset 0 1px 0 rgba(120,200,230,0.6); 
     388    -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6); 
     389    box-shadow: inset 0 1px 0 rgba(120,200,230,0.6); 
    379390    color: #fff; 
    380391} 
     
    390401    border-color: #005684; 
    391402    color: rgba(255,255,255,0.95); 
    392     -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1); 
    393     box-shadow: inset 0 1px 0 rgba(0,0,0,0.1); 
     403    -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1); 
     404    box-shadow: inset 0 1px 0 rgba(0,0,0,0.1); 
    394405} 
    395406 
     
    399410    border-color: #1b607f; 
    400411    text-shadow: 0 -1px 0 rgba(0,0,0,0.1); 
     412} 
     413 
     414@media screen and ( max-width: 782px ) { 
     415    .mce-window .mce-btn { 
     416        padding: 10px 14px; 
     417        line-height: 1; 
     418        font-size: 14px; 
     419        vertical-align: middle; 
     420        height: auto; 
     421        margin-bottom: 4px; 
     422    } 
    401423} 
    402424 
     
    865887------------------------------------------------------------------------------*/ 
    866888 
     889#wp-link-wrap { 
     890    display: none; 
     891    background-color: #fff; 
     892    width: 600px; 
     893    overflow: hidden; 
     894    margin-left: -300px; 
     895    position: fixed; 
     896    top: 30px; 
     897    left: 50%; 
     898    z-index: 100105; 
     899} 
     900 
     901#wp-link-backdrop { 
     902    display: none; 
     903    position: fixed; 
     904    top: 0; 
     905    left: 0; 
     906    right: 0; 
     907    bottom: 0; 
     908    min-height: 360px; 
     909    background: #000; 
     910    opacity: 0.7; 
     911    z-index: 100100; 
     912} 
     913 
    867914#wp-link { 
    868     background-color: #F5F5F5; 
    869     line-height: 1.4em; 
    870     font-size: 12px; 
     915    position: relative; 
     916    height: 100%; 
     917} 
     918 
     919#wp-link-wrap.search-panel-visible { 
     920    bottom: 30px; 
     921} 
     922 
     923#link-modal-title { 
     924    background: #fcfcfc; 
     925    border-bottom: 1px solid #dfdfdf; 
     926    height: 42px; 
     927    font-size: 22px; 
     928    font-weight: 600; 
     929    line-height: 41px; 
     930    padding: 0 42px 0 16px; 
     931    top: 0; 
     932    right: 0; 
     933    left: 0; 
     934} 
     935 
     936#wp-link-close { 
     937    color: #666; 
     938    cursor: pointer; 
     939    padding: 0; 
     940    position: absolute; 
     941    top: 0; 
     942    right: 0; 
     943    width: 42px; 
     944    height: 42px; 
     945    text-align: center; 
     946} 
     947 
     948#wp-link-close:before { 
     949    font: normal 20px/42px 'dashicons'; 
     950    vertical-align: top; 
     951    speak: none; 
     952    -webkit-font-smoothing: antialiased; 
     953    -moz-osx-font-smoothing: grayscale; 
     954    width: 42px; 
     955    height: 42px; 
     956    content: '\f158'; 
     957} 
     958 
     959#wp-link-close:hover, 
     960#wp-link-close:focus { 
     961    color: #2ea2cc; 
     962} 
     963 
     964#link-selector { 
     965    padding: 0 16px 52px; 
     966} 
     967 
     968#wp-link-wrap.search-panel-visible #link-selector { 
     969    padding: 0 16px; 
     970    position: absolute; 
     971    top: 42px; 
     972    left: 0; 
     973    right: 0; 
     974    bottom: 44px; 
    871975} 
    872976 
     
    878982} 
    879983 
     984#wp-link-search-toggle::after { 
     985    font: normal 20px/1 'dashicons'; 
     986    vertical-align: top; 
     987    speak: none; 
     988    -webkit-font-smoothing: antialiased; 
     989    -moz-osx-font-smoothing: grayscale; 
     990    content: '\f140'; 
     991} 
     992 
     993.search-panel-visible #wp-link-search-toggle::after { 
     994    content: '\f142'; 
     995} 
     996 
    880997#wp-link input[type="text"] { 
    881998    -webkit-box-sizing: border-box; 
     
    8841001} 
    8851002 
    886 #wp-link input[type="text"], 
    887 #wp-link textarea { 
    888     border-width: 1px; 
    889     border-style: solid; 
    890     -webkit-border-radius: 4px; 
    891     border-radius: 4px; 
    892     font-size: 12px; 
    893     margin: 1px; 
    894     padding: 3px; 
    895 } 
    896  
    8971003#wp-link #link-options { 
    8981004    padding: 10px 0 14px; 
    899     border-bottom: 1px solid #dfdfdf; 
    900     margin: 0 6px 14px; 
    9011005} 
    9021006 
    9031007#wp-link p.howto { 
    904     margin: 3px; 
    905 } 
    906  
    907 #wp-link #internal-toggle { 
    908     display: inline-block; 
     1008    margin: 3px 0; 
     1009} 
     1010 
     1011#wp-link-search-toggle { 
    9091012    cursor: pointer; 
    910     padding-left: 18px; 
    911 } 
    912  
    913 #wp-link .toggle-arrow { 
    914     background: transparent url(../images/toggle-arrow.png) top left no-repeat; 
    915     height: 23px; 
    916     line-height: 23px; 
    917 } 
    918  
    919 #wp-link .toggle-arrow-active { 
    920     background-position: center left; 
    9211013} 
    9221014 
    9231015#wp-link label input[type="text"] { 
    924     width: 360px; 
     1016    width: 400px; 
    9251017    margin-top: 5px; 
     1018    max-width: 70%; 
    9261019} 
    9271020 
     
    9321025    text-align: right; 
    9331026    padding-right: 5px; 
     1027    max-width: 24%; 
    9341028} 
    9351029 
    9361030#wp-link .link-search-field { 
    9371031    float: left; 
    938     width: 220px; 
     1032    width: 250px; 
     1033    max-width: 70%; 
    9391034} 
    9401035 
    9411036#wp-link .link-search-wrapper { 
    942     margin: 5px 6px 9px; 
     1037    margin: 5px 0 9px; 
    9431038    display: block; 
    9441039    overflow: hidden; 
     
    9591054    padding: 3px 0 0; 
    9601055    margin: 0 0 0 87px; 
    961     font-size: 11px; 
    9621056} 
    9631057 
    9641058#wp-link .query-results { 
    9651059    border: 1px #dfdfdf solid; 
    966     margin: 0 5px 5px; 
     1060    margin: 0; 
    9671061    background: #fff; 
    968     height: 185px; 
    9691062    overflow: auto; 
    970     position: relative; 
     1063    position: absolute; 
     1064    left: 16px; 
     1065    right: 16px; 
     1066    bottom: 16px; 
     1067    top: 205px; 
    9711068} 
    9721069 
     
    10061103} 
    10071104 
     1105#wp-link li:last-child { 
     1106    border: none; 
     1107} 
     1108 
    10081109#wp-link .item-title { 
    10091110    display: inline-block; 
     
    10211122} 
    10221123 
    1023 #wp-link #search-results { 
     1124#wp-link #search-results, 
     1125#wp-link #search-panel { 
    10241126    display: none; 
    10251127} 
    10261128 
    1027 #wp-link #search-panel { 
    1028     float: left; 
    1029     width: 100%; 
     1129#wp-link-wrap.search-panel-visible #search-panel { 
     1130    display: block; 
    10301131} 
    10311132 
     
    10411142 
    10421143#wp-link .submitbox { 
    1043     padding: 5px 10px; 
    1044     font-size: 11px; 
    1045     overflow: auto; 
    1046     height: 29px; 
    1047 } 
    1048  
    1049 #wp-link-cancel { 
    1050     line-height: 25px; 
    1051     float: left; 
     1144    padding: 8px 16px; 
     1145    background: #fcfcfc; 
     1146    border-top: 1px solid #dfdfdf; 
     1147    position: absolute; 
     1148    bottom: 0; 
     1149    left: 0; 
     1150    right: 0; 
    10521151} 
    10531152 
     
    10571156} 
    10581157 
    1059 /*! 
    1060  * jQuery UI CSS Framework 1.10.1 
    1061  * http://jqueryui.com 
    1062  * 
    1063  * Copyright 2013 jQuery Foundation and other contributors 
    1064  * Released under the MIT license. 
    1065  * http://jquery.org/license 
    1066  * 
    1067  * http://docs.jquery.com/UI/Theming/API 
    1068  */ 
    1069  
    1070 /* Layout helpers 
    1071 ----------------------------------*/ 
    1072 .ui-helper-hidden { 
    1073     display: none; 
    1074 } 
    1075 .ui-helper-hidden-accessible { 
    1076     border: 0; 
    1077     clip: rect(0 0 0 0); 
    1078     height: 1px; 
    1079     margin: -1px; 
    1080     overflow: hidden; 
    1081     padding: 0; 
    1082     position: absolute; 
    1083     width: 1px; 
    1084 } 
    1085 .ui-helper-reset { 
    1086     margin: 0; 
    1087     padding: 0; 
    1088     border: 0; 
    1089     outline: 0; 
    1090     line-height: 1.3; 
    1091     text-decoration: none; 
    1092     font-size: 100%; 
    1093     list-style: none; 
    1094 } 
    1095 .ui-helper-clearfix:before, 
    1096 .ui-helper-clearfix:after { 
    1097     content: ""; 
    1098     display: table; 
    1099     border-collapse: collapse; 
    1100 } 
    1101 .ui-helper-clearfix:after { 
    1102     clear: both; 
    1103 } 
    1104 .ui-helper-clearfix { 
    1105     min-height: 0; /* support: IE7 */ 
    1106 } 
    1107 .ui-helper-zfix { 
    1108     width: 100%; 
    1109     height: 100%; 
    1110     top: 0; 
    1111     left: 0; 
    1112     position: absolute; 
    1113     opacity: 0; 
    1114     filter:Alpha(Opacity=0); 
    1115 } 
    1116  
    1117 .ui-front { 
    1118     z-index: 100; 
    1119 } 
    1120  
    1121  
    1122 /* Interaction Cues 
    1123 ----------------------------------*/ 
    1124 .ui-state-disabled { 
    1125     cursor: default !important; 
    1126 } 
    1127  
    1128  
    1129 /* Icons 
    1130 ----------------------------------*/ 
    1131  
    1132 /* states and images */ 
    1133 .ui-icon { 
    1134     display: block; 
    1135     text-indent: -99999px; 
    1136     overflow: hidden; 
    1137     background-repeat: no-repeat; 
    1138 } 
    1139  
    1140  
    1141 /* Misc visuals 
    1142 ----------------------------------*/ 
    1143  
    1144 /* Overlays */ 
    1145 .ui-widget-overlay { 
    1146     position: fixed; 
    1147     top: 0; 
    1148     left: 0; 
    1149     width: 100%; 
    1150     height: 100%; 
    1151 } 
    1152  
    1153  
    1154 /*! 
    1155  * jQuery UI Resizable 1.10.1 
    1156  * http://jqueryui.com 
    1157  * 
    1158  * Copyright 2013 jQuery Foundation and other contributors 
    1159  * Released under the MIT license. 
    1160  * http://jquery.org/license 
    1161  * 
    1162  * http://docs.jquery.com/UI/Resizable#theming 
    1163  */ 
    1164 .ui-resizable { 
    1165     position: relative; 
    1166 } 
    1167 .ui-resizable-handle { 
    1168     position: absolute; 
    1169     font-size: 0.1px; 
    1170     display: block; 
    1171 } 
    1172 .ui-resizable-disabled .ui-resizable-handle, 
    1173 .ui-resizable-autohide .ui-resizable-handle { 
    1174     display: none; 
    1175 } 
    1176 .ui-resizable-n { 
    1177     cursor: n-resize; 
    1178     height: 7px; 
    1179     width: 100%; 
    1180     top: -5px; 
    1181     left: 0; 
    1182 } 
    1183 .ui-resizable-s { 
    1184     cursor: s-resize; 
    1185     height: 7px; 
    1186     width: 100%; 
    1187     bottom: -5px; 
    1188     left: 0; 
    1189 } 
    1190 .ui-resizable-e { 
    1191     cursor: e-resize; 
    1192     width: 7px; 
    1193     right: -5px; 
    1194     top: 0; 
    1195     height: 100%; 
    1196 } 
    1197 .ui-resizable-w { 
    1198     cursor: w-resize; 
    1199     width: 7px; 
    1200     left: -5px; 
    1201     top: 0; 
    1202     height: 100%; 
    1203 } 
    1204 .ui-resizable-se { 
    1205     cursor: se-resize; 
    1206     width: 12px; 
    1207     height: 12px; 
    1208     right: 1px; 
    1209     bottom: 1px; 
    1210 } 
    1211 .ui-resizable-sw { 
    1212     cursor: sw-resize; 
    1213     width: 9px; 
    1214     height: 9px; 
    1215     left: -5px; 
    1216     bottom: -5px; 
    1217 } 
    1218 .ui-resizable-nw { 
    1219     cursor: nw-resize; 
    1220     width: 9px; 
    1221     height: 9px; 
    1222     left: -5px; 
    1223     top: -5px; 
    1224 } 
    1225 .ui-resizable-ne { 
    1226     cursor: ne-resize; 
    1227     width: 9px; 
    1228     height: 9px; 
    1229     right: -5px; 
    1230     top: -5px; 
    1231 } 
    1232  
    1233 /*! 
    1234  * jQuery UI Dialog 1.10.1 
    1235  * http://jqueryui.com 
    1236  * 
    1237  * Copyright 2013 jQuery Foundation and other contributors 
    1238  * Released under the MIT license. 
    1239  * http://jquery.org/license 
    1240  * 
    1241  * http://docs.jquery.com/UI/Dialog#theming 
    1242  */ 
    1243 .ui-dialog { 
    1244     position: absolute; 
    1245     top: 0; 
    1246     /* @noflip */ 
    1247     left: 0; 
    1248     padding: .2em; 
    1249     outline: 0; 
    1250 } 
    1251 .ui-dialog .ui-dialog-titlebar { 
    1252     padding: .4em 1em; 
    1253     position: relative; 
    1254 } 
    1255 .ui-dialog .ui-dialog-title { 
    1256     float: left; 
    1257     margin: .1em 0; 
    1258     white-space: nowrap; 
    1259     width: 90%; 
    1260     overflow: hidden; 
    1261     text-overflow: ellipsis; 
    1262 } 
    1263 .ui-dialog .ui-dialog-titlebar-close { 
    1264     position: absolute; 
    1265     right: .3em; 
    1266     top: 50%; 
    1267     width: 21px; 
    1268     margin: -10px 0 0 0; 
    1269     padding: 1px; 
    1270     height: 20px; 
    1271 } 
    1272 .ui-dialog .ui-dialog-content { 
    1273     position: relative; 
    1274     border: 0; 
    1275     padding: .5em 1em; 
    1276     background: none; 
    1277     overflow: auto; 
    1278 } 
    1279 .ui-dialog .ui-dialog-buttonpane { 
    1280     text-align: left; 
    1281     border-width: 1px 0 0 0; 
    1282     background-image: none; 
    1283     margin-top: .5em; 
    1284     padding: .3em 1em .5em .4em; 
    1285 } 
    1286 .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { 
     1158#wp-link-submit { 
    12871159    float: right; 
    1288 } 
    1289 .ui-dialog .ui-dialog-buttonpane button { 
    1290     margin: .5em .4em .5em 0; 
    1291     cursor: pointer; 
    1292 } 
    1293 .ui-dialog .ui-resizable-se { 
    1294     width: 12px; 
    1295     height: 12px; 
    1296     right: -5px; 
    1297     bottom: -5px; 
    1298     background-position: 16px 16px; 
    1299 } 
    1300 .ui-draggable .ui-dialog-titlebar { 
    1301     cursor: move; 
    1302 } 
    1303  
    1304 /* WP jQuery Dialog Theme */ 
    1305 .wp-dialog { 
    1306     padding: 0; 
    1307     z-index: 300002; 
    1308     border: 0; 
    1309     -webkit-box-shadow: 0 5px 15px rgba(0,0,0,0.7); 
    1310     box-shadow: 0 5px 15px rgba(0,0,0,0.7); 
    1311     background-color: #f5f5f5; 
    1312 } 
    1313  
    1314 .wp-dialog .ui-dialog-title { 
    1315     display: block; 
    1316     text-align: center; 
    1317     padding: 0; 
    1318 } 
    1319  
    1320 .wp-dialog .ui-dialog-titlebar { 
    1321     padding: 0 1em; 
    1322     background-color: #444; 
    1323     font-size: 13px; 
    1324     line-height: 24px; 
    1325     color: #fff; 
    1326 } 
    1327  
    1328 .wp-dialog .ui-dialog-content { 
    1329     padding: 0; 
    1330 } 
    1331  
    1332 .wp-dialog .ui-dialog-titlebar-close { 
    1333     cursor: pointer; 
    1334     -webkit-appearance: none; 
    1335     border: 0; 
    1336     width: 30px; 
    1337     height: 20px; 
    1338     top: 13px; 
    1339     right: 6px; 
    1340     background: none; 
    1341 } 
    1342  
    1343 .wp-dialog .ui-dialog-titlebar-close:before { 
    1344     content: '\f158'; 
    1345     font: normal 20px/1 'dashicons'; 
    1346     speak: none; 
    1347     -webkit-font-smoothing: antialiased; 
    1348     -moz-osx-font-smoothing: grayscale; 
    1349     color: #999; 
    1350     padding-left: 12px; 
    1351 } 
    1352  
    1353 .wp-dialog .ui-dialog-titlebar-close:hover:before { 
    1354     color: #2ea2cc; 
    1355 } 
    1356  
    1357 .wp-dialog .ui-dialog-titlebar-close .ui-button-text { 
    1358     display: none; 
    1359 } 
    1360  
    1361 .wp-dialog .ui-dialog-titlebar-close:hover, 
    1362 .wp-dialog .ui-dialog-titlebar-close:focus { 
    1363     background-position: -87px -32px; 
    1364 } 
    1365  
    1366 .ui-widget-overlay { 
    1367     z-index: 300001; 
    1368     background-color: #000; 
    1369     opacity: 0.6; 
    1370     filter: alpha(opacity=60); 
    1371 } 
    1372  
    1373 /* TinyMCE modal */ 
    1374 /* TODO: restyle the TinyMCE 4.0 modals 
     1160    margin-bottom: 0; 
     1161} 
     1162 
     1163@media screen and ( max-width: 782px ), ( max-height: 440px ) { 
     1164 
     1165    #wp-link-wrap, 
     1166    #wp-link-wrap.search-panel-visible { 
     1167        width: auto; 
     1168        margin: 0; 
     1169        top: 10px; 
     1170        left: 10px; 
     1171        right: 10px; 
     1172        bottom: 10px; 
     1173        max-width: 600px; 
     1174        margin: auto; 
     1175    } 
     1176 
     1177    #link-selector { 
     1178        overflow: auto; 
     1179        height: calc(100% - 88px); 
     1180        padding-bottom: 0; 
     1181    } 
     1182 
     1183    #wp-link #search-panel { 
     1184        display: block; 
     1185    } 
     1186 
     1187    #wp-link-search-toggle { 
     1188        display: none; 
     1189    } 
     1190 
     1191    #search-panel .query-results { 
     1192        position: static; 
     1193    } 
     1194 
     1195} 
     1196 
     1197/* Old TinyMCE 3.x modal */ 
     1198/* 
    13751199.clearlooks2 .mceTop { 
    13761200    border-bottom: 1px solid #ccc; 
     
    18081632} 
    18091633 
    1810  
    18111634/* HiDPI */ 
    18121635@media print, 
     
    18181641        background: none; 
    18191642    } 
    1820  
    1821     #wp-link .toggle-arrow { 
    1822         background: transparent url(../images/toggle-arrow-2x.png) top left no-repeat; 
    1823         -webkit-background-size: 19px 69px; 
    1824         background-size: 19px 69px; 
    1825     } 
    18261643} 
    18271644 
    18281645/* TODO: DFW responsive */ 
    1829  
    1830  
  • trunk/src/wp-includes/css/jquery-ui-dialog.css

    r27460 r27494  
    5757} 
    5858 
    59 .ui-front { 
    60     z-index: 100; 
    61 } 
    62  
    63  
    6459/* Interaction Cues 
    6560----------------------------------*/ 
     
    6762    cursor: default !important; 
    6863} 
    69  
    7064 
    7165/* Icons 
     
    7973    background-repeat: no-repeat; 
    8074} 
    81  
    82  
    83 /* Misc visuals 
    84 ----------------------------------*/ 
    85  
    86 /* Overlays */ 
    87 .ui-widget-overlay { 
    88     position: fixed; 
    89     top: 0; 
    90     left: 0; 
    91     width: 100%; 
    92     height: 100%; 
    93 } 
    94  
    9575 
    9676/*! 
     
    149129.ui-resizable-se { 
    150130    cursor: se-resize; 
    151     width: 12px; 
    152     height: 12px; 
    153     right: 1px; 
    154     bottom: 1px; 
     131    width: 9px; 
     132    height: 9px; 
     133    right: -5px; 
     134    bottom: -5px; 
    155135} 
    156136/* @noflip */ 
     
    179159} 
    180160 
    181 /*! 
    182  * jQuery UI Dialog 1.10.1 
    183  * http://jqueryui.com 
    184  * 
    185  * Copyright 2013 jQuery Foundation and other contributors 
    186  * Released under the MIT license. 
    187  * http://jquery.org/license 
    188  * 
    189  * http://docs.jquery.com/UI/Dialog#theming 
    190  */ 
     161/* WP buttons: see buttons.css. */ 
     162 
     163.ui-button { 
     164    display: inline-block; 
     165    text-decoration: none; 
     166    font-size: 13px; 
     167    line-height: 26px; 
     168    height: 28px; 
     169    margin: 0; 
     170    padding: 0 10px 1px; 
     171    cursor: pointer; 
     172    border-width: 1px; 
     173    border-style: solid; 
     174    -webkit-appearance: none; 
     175    -webkit-border-radius: 3px; 
     176    border-radius: 3px; 
     177    white-space: nowrap; 
     178    -webkit-box-sizing: border-box; 
     179    -moz-box-sizing: border-box; 
     180    box-sizing: border-box; 
     181    color: #555; 
     182    border-color: #cccccc; 
     183    background: #f7f7f7; 
     184    -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08); 
     185    box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08); 
     186    vertical-align: top; 
     187} 
     188 
     189/* Remove the dotted border on :focus and the extra padding in Firefox */ 
     190.ui-button::-moz-focus-inner { 
     191    border-width: 1px 0; 
     192    border-style: solid none; 
     193    border-color: transparent; 
     194    padding: 0; 
     195} 
     196 
     197.ui-button:hover { 
     198    background: #fafafa; 
     199    border-color: #999; 
     200    color: #222; 
     201} 
     202 
     203.ui-button:focus { 
     204    -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2); 
     205    box-shadow: 1px 1px 1px rgba(0,0,0,.2); 
     206} 
     207 
     208.ui-button:active { 
     209    background: #eee; 
     210    border-color: #999; 
     211    color: #333; 
     212    -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ); 
     213    box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ); 
     214    outline: none; 
     215} 
     216 
     217.ui-button[disabled], 
     218.ui-button:disabled { 
     219    color: #aaa !important; 
     220    border-color: #ddd !important; 
     221    background: #f7f7f7 !important; 
     222    -webkit-box-shadow: none !important; 
     223    box-shadow: none !important; 
     224    text-shadow: 0 1px 0 #fff !important; 
     225    cursor: default; 
     226} 
     227 
     228@media screen and ( max-width: 782px ) { 
     229 
     230    .ui-button { 
     231        padding: 10px 14px; 
     232        line-height: 1; 
     233        font-size: 14px; 
     234        vertical-align: middle; 
     235        height: auto; 
     236        margin-bottom: 4px; 
     237    } 
     238 
     239} 
     240 
     241/* WP Theme */ 
     242 
    191243.ui-dialog { 
    192244    position: absolute; 
    193245    top: 0; 
    194     /* @noflip */ 
    195     left: 0; 
    196     padding: .2em; 
    197     outline: 0; 
    198 } 
    199 .ui-dialog .ui-dialog-titlebar { 
    200     padding: .4em 1em; 
    201     position: relative; 
    202 } 
    203 .ui-dialog .ui-dialog-title { 
    204     float: left; 
    205     margin: .1em 0; 
    206     white-space: nowrap; 
    207     width: 90%; 
    208     overflow: hidden; 
    209     text-overflow: ellipsis; 
    210 } 
    211 .ui-dialog .ui-dialog-titlebar-close { 
    212     position: absolute; 
    213     right: .3em; 
    214     top: 50%; 
    215     width: 21px; 
    216     margin: -10px 0 0 0; 
    217     padding: 1px; 
    218     height: 20px; 
    219 } 
    220 .ui-dialog .ui-dialog-content { 
    221     position: relative; 
    222     border: 0; 
    223     padding: .5em 1em; 
     246    left: 0; 
     247    z-index: 100102; 
     248    background-color: #fff; 
     249} 
     250 
     251.ui-dialog-titlebar { 
     252    background: #fcfcfc; 
     253    border-bottom: 1px solid #dfdfdf; 
     254    height: 56px; 
     255    font-size: 22px; 
     256    font-weight: 600; 
     257    line-height: 56px; 
     258    padding: 0 40px 0 16px; 
     259} 
     260 
     261.ui-button.ui-dialog-titlebar-close { 
    224262    background: none; 
    225     overflow: auto; 
    226 } 
    227 .ui-dialog .ui-dialog-buttonpane { 
    228     text-align: left; 
    229     border-width: 1px 0 0 0; 
    230     background-image: none; 
    231     margin-top: .5em; 
    232     padding: .3em 1em .5em .4em; 
    233 } 
    234 .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { 
    235     float: right; 
    236 } 
    237 .ui-dialog .ui-dialog-buttonpane button { 
    238     margin: .5em .4em .5em 0; 
     263    border: none; 
     264    -webkit-box-shadow: none; 
     265    box-shadow: none; 
     266    color: #666; 
    239267    cursor: pointer; 
    240 } 
    241 .ui-dialog .ui-resizable-se { 
    242     width: 12px; 
    243     height: 12px; 
    244     right: -5px; 
    245     bottom: -5px; 
    246     background-position: 16px 16px; 
    247 } 
    248 .ui-draggable .ui-dialog-titlebar { 
    249     cursor: move; 
    250 } 
    251  
    252 /* WP jQuery Dialog Theme */ 
    253 .wp-dialog { 
     268    display: block; 
    254269    padding: 0; 
    255     z-index: 100102; 
    256     border: 0; 
    257     -webkit-box-shadow: 0 5px 15px rgba(0,0,0,0.7); 
    258     box-shadow: 0 5px 15px rgba(0,0,0,0.7); 
    259     background-color: #f5f5f5; 
    260 } 
    261  
    262 .wp-dialog .ui-dialog-title { 
    263     display: block; 
     270    position: absolute; 
     271    top: 0; 
     272    right: 0; 
     273    width: 40px; 
     274    height: 40px; 
    264275    text-align: center; 
    265     padding: 0; 
    266 } 
    267  
    268 .wp-dialog .ui-dialog-titlebar { 
    269     padding: 0 1em; 
    270     background-color: #444; 
    271     font-size: 13px; 
    272     line-height: 24px; 
    273     color: #fff; 
    274 } 
    275  
    276 .wp-dialog .ui-dialog-content { 
    277     padding: 0; 
    278 } 
    279  
    280 .wp-dialog .ui-dialog-titlebar-close { 
    281     cursor: pointer; 
    282     -webkit-appearance: none; 
    283     border: 0; 
    284     width: 30px; 
    285     height: 20px; 
    286     top: 13px; 
    287     right: 6px; 
    288     background: none; 
    289 } 
    290  
    291 .wp-dialog .ui-dialog-titlebar-close:before { 
    292     content: '\f158'; 
     276} 
     277 
     278.ui-dialog-titlebar-close:before { 
    293279    font: normal 20px/1 'dashicons'; 
     280    vertical-align: top; 
    294281    speak: none; 
    295282    -webkit-font-smoothing: antialiased; 
    296283    -moz-osx-font-smoothing: grayscale; 
    297     color: #999; 
    298     padding-left: 12px; 
    299 } 
    300  
    301 .wp-dialog .ui-dialog-titlebar-close:hover:before { 
     284    line-height: 40px; 
     285    width: 40px; 
     286    height: 40px; 
     287    content: '\f158'; 
     288} 
     289 
     290.ui-button.ui-dialog-titlebar-close:hover { 
    302291    color: #2ea2cc; 
    303292} 
    304293 
    305 .wp-dialog .ui-dialog-titlebar-close .ui-button-text { 
     294.ui-dialog-titlebar-close .ui-button-text { 
    306295    display: none; 
    307296} 
    308297 
    309 .wp-dialog .ui-dialog-titlebar-close:hover, 
    310 .wp-dialog .ui-dialog-titlebar-close:focus { 
    311     background-position: -87px -32px; 
     298.ui-dialog-content { 
     299    padding: 16px; 
     300    overflow: auto; 
     301} 
     302 
     303.ui-dialog-buttonpane { 
     304    background: #fcfcfc; 
     305    border-top: 1px solid #dfdfdf; 
     306    padding: 16px; 
     307} 
     308 
     309.ui-dialog-buttonpane .ui-button { 
     310    margin-left: 16px; 
     311} 
     312 
     313.ui-dialog-buttonpane .ui-dialog-buttonset { 
     314    float: right; 
     315} 
     316 
     317.ui-draggable .ui-dialog-titlebar { 
     318    cursor: move; 
    312319} 
    313320 
    314321.ui-widget-overlay { 
     322    position: fixed; 
     323    top: 0; 
     324    left: 0; 
     325    right: 0; 
     326    bottom: 0; 
     327    min-height: 360px; 
     328    background: #000; 
     329    opacity: 0.7; 
    315330    z-index: 100101; 
    316     background-color: #000; 
    317     opacity: 0.6; 
    318     filter: alpha(opacity=60); 
    319 } 
     331} 
  • trunk/src/wp-includes/js/wplink.js

    r27084 r27494  
    22var wpLink; 
    33 
    4 (function($){ 
    5     var inputs = {}, rivers = {}, ed, River, Query; 
     4( function( $ ) { 
     5    var inputs = {}, rivers = {}, editor, River, Query; 
    66 
    77    wpLink = { 
     
    1313        textarea: '', 
    1414 
    15         init : function() { 
    16             inputs.dialog = $('#wp-link'); 
    17             inputs.submit = $('#wp-link-submit'); 
     15        init: function() { 
     16            inputs.wrap = $('#wp-link-wrap'); 
     17            inputs.dialog = $( '#wp-link' ); 
     18            inputs.backdrop = $( '#wp-link-backdrop' ); 
     19            inputs.submit = $( '#wp-link-submit' ); 
     20            inputs.close = $( '#wp-link-close' ); 
    1821            // URL 
    19             inputs.url = $('#url-field'); 
    20             inputs.nonce = $('#_ajax_linking_nonce'); 
     22            inputs.url = $( '#url-field' ); 
     23            inputs.nonce = $( '#_ajax_linking_nonce' ); 
    2124            // Secondary options 
    22             inputs.title = $('#link-title-field'); 
     25            inputs.title = $( '#link-title-field' ); 
    2326            // Advanced Options 
    24             inputs.openInNewTab = $('#link-target-checkbox'); 
    25             inputs.search = $('#search-field'); 
     27            inputs.openInNewTab = $( '#link-target-checkbox' ); 
     28            inputs.search = $( '#search-field' ); 
    2629            // Build Rivers 
    27             rivers.search = new River( $('#search-results') ); 
    28             rivers.recent = new River( $('#most-recent-results') ); 
    29             rivers.elements = $('.query-results', inputs.dialog); 
     30            rivers.search = new River( $( '#search-results' ) ); 
     31            rivers.recent = new River( $( '#most-recent-results' ) ); 
     32            rivers.elements = inputs.dialog.find( '.query-results' ); 
    3033 
    3134            // Bind event handlers 
    3235            inputs.dialog.keydown( wpLink.keydown ); 
    3336            inputs.dialog.keyup( wpLink.keyup ); 
    34             inputs.submit.click( function(e){ 
    35                 e.preventDefault(); 
     37            inputs.submit.click( function( event ) { 
     38                event.preventDefault(); 
    3639                wpLink.update(); 
    3740            }); 
    38             $('#wp-link-cancel').click( function(e){ 
    39                 e.preventDefault(); 
     41            inputs.close.add( inputs.backdrop ).click( function( event ) { 
     42                event.preventDefault(); 
    4043                wpLink.close(); 
    4144            }); 
    42             $('#internal-toggle').click( wpLink.toggleInternalLinking ); 
    43  
    44             rivers.elements.bind('river-select', wpLink.updateFields ); 
     45 
     46            $( '#wp-link-search-toggle' ).click( wpLink.toggleInternalLinking ); 
     47 
     48            rivers.elements.on( 'river-select', wpLink.updateFields ); 
    4549 
    4650            inputs.search.keyup( wpLink.searchInternalLinks ); 
    47  
    48             inputs.dialog.bind('wpdialogrefresh', wpLink.refresh); 
    49             inputs.dialog.bind('wpdialogbeforeopen', wpLink.beforeOpen); 
    50             inputs.dialog.bind('wpdialogclose', wpLink.onClose); 
    51         }, 
    52  
    53         beforeOpen : function() { 
     51        }, 
     52 
     53        open: function( editorId ) { 
     54            var ed; 
     55             
    5456            wpLink.range = null; 
    5557 
    56             if ( ! wpLink.isMCE() && document.selection ) { 
    57                 wpLink.textarea.focus(); 
    58                 wpLink.range = document.selection.createRange(); 
    59             } 
    60         }, 
    61  
    62         open : function( editorId ) { 
    6358            if ( editorId ) { 
    6459                window.wpActiveEditor = editorId; 
     
    6964            } 
    7065 
    71             this.textarea = $( '#' + wpActiveEditor ).get(0); 
     66            this.textarea = $( '#' + window.wpActiveEditor ).get( 0 ); 
    7267 
    7368            if ( typeof tinymce !== 'undefined' ) { 
    7469                ed = tinymce.get( wpActiveEditor ); 
    7570 
    76                 if ( ed && tinymce.isIE ) { 
    77                     ed.windowManager.bookmark = ed.selection.getBookmark(); 
     71                if ( ed && ! ed.isHidden() ) { 
     72                    editor = ed; 
     73                } else { 
     74                    editor = null; 
    7875                } 
    79             } 
    80  
    81             // Initialize the dialog 
    82             if ( ! inputs.dialog.data('wpdialog') ) { 
    83                 inputs.dialog.wpdialog({ 
    84                     title: wpLinkL10n.title, 
    85                     width: 480, 
    86                     height: 'auto', 
    87                     modal: true, 
    88                     dialogClass: 'wp-dialog' 
    89                 }); 
    90             } 
    91  
    92             inputs.dialog.wpdialog('open'); 
    93         }, 
    94  
    95         isMCE : function() { 
    96             return ed && ! ed.isHidden(); 
    97         }, 
    98  
    99         refresh : function() { 
     76 
     77                if ( editor && tinymce.isIE ) { 
     78                    editor.windowManager.bookmark = editor.selection.getBookmark(); 
     79                } 
     80            } 
     81 
     82            if ( ! wpLink.isMCE() && document.selection ) { 
     83                this.textarea.focus(); 
     84                this.range = document.selection.createRange(); 
     85            } 
     86 
     87            inputs.wrap.show(); 
     88            inputs.backdrop.show(); 
     89 
     90            wpLink.refresh(); 
     91        }, 
     92 
     93        isMCE: function() { 
     94            return editor && ! editor.isHidden(); 
     95        }, 
     96 
     97        refresh: function() { 
    10098            // Refresh rivers (clear links, check visibility) 
    10199            rivers.search.refresh(); 
     
    120118 
    121119            // If link exists, select proper values. 
    122             if ( e = ed.dom.getParent( ed.selection.getNode(), 'A' ) ) { 
     120            if ( e = editor.dom.getParent( editor.selection.getNode(), 'A' ) ) { 
    123121                // Set URL and description. 
    124                 inputs.url.val( ed.dom.getAttrib( e, 'href' ) ); 
    125                 inputs.title.val( ed.dom.getAttrib( e, 'title' ) ); 
     122                inputs.url.val( editor.dom.getAttrib( e, 'href' ) ); 
     123                inputs.title.val( editor.dom.getAttrib( e, 'title' ) ); 
    126124                // Set open in new tab. 
    127                 inputs.openInNewTab.prop( 'checked', ( '_blank' === ed.dom.getAttrib( e, 'target' ) ) ); 
     125                inputs.openInNewTab.prop( 'checked', ( '_blank' === editor.dom.getAttrib( e, 'target' ) ) ); 
    128126                // Update save prompt. 
    129127                inputs.submit.val( wpLinkL10n.update ); 
     
    136134 
    137135        close: function() { 
    138             inputs.dialog.wpdialog('close'); 
    139         }, 
    140  
    141         onClose: function() { 
    142136            if ( ! wpLink.isMCE() ) { 
    143137                wpLink.textarea.focus(); 
     
    147141                    wpLink.range.select(); 
    148142                } 
    149             } 
     143            } else { 
     144                editor.focus(); 
     145            } 
     146 
     147            inputs.backdrop.hide(); 
     148            inputs.wrap.hide(); 
    150149        }, 
    151150 
    152151        getAttrs: function() { 
    153152            return { 
    154                 href : inputs.url.val(), 
    155                 title : inputs.title.val(), 
    156                 target : inputs.openInNewTab.prop('checked') ? '_blank' : '' 
     153                href: inputs.url.val(), 
     154                title: inputs.title.val(), 
     155                target: inputs.openInNewTab.prop( 'checked' ) ? '_blank' : '' 
    157156            }; 
    158157        }, 
     
    231230 
    232231            wpLink.close(); 
    233             ed.focus(); 
     232            editor.focus(); 
    234233 
    235234            if ( tinymce.isIE ) { 
    236                 ed.selection.moveToBookmark( ed.windowManager.bookmark ); 
    237             } 
    238  
    239             link = ed.dom.getParent( ed.selection.getNode(), 'a[href]' ); 
     235                editor.selection.moveToBookmark( editor.windowManager.bookmark ); 
     236            } 
     237 
     238            link = editor.dom.getParent( editor.selection.getNode(), 'a[href]' ); 
    240239 
    241240            // If the values are empty, unlink and return 
    242241            if ( ! attrs.href || attrs.href == 'http://' ) { 
    243                 ed.execCommand('unlink'); 
     242                editor.execCommand( 'unlink' ); 
    244243                return; 
    245244            } 
    246245 
    247246            if ( link ) { 
    248                 ed.dom.setAttribs( link, attrs ); 
     247                editor.dom.setAttribs( link, attrs ); 
    249248            } else { 
    250                 ed.execCommand( 'mceInsertLink', false, attrs ); 
     249                editor.execCommand( 'mceInsertLink', false, attrs ); 
    251250            } 
    252251 
    253252            // Move the cursor to the end of the selection 
    254             ed.selection.collapse(); 
     253            editor.selection.collapse(); 
    255254        }, 
    256255 
    257256        updateFields: function( e, li, originalEvent ) { 
    258             inputs.url.val( li.children('.item-permalink').val() ); 
    259             inputs.title.val( li.hasClass('no-title') ? '' : li.children('.item-title').text() ); 
     257            inputs.url.val( li.children( '.item-permalink' ).val() ); 
     258            inputs.title.val( li.hasClass( 'no-title' ) ? '' : li.children( '.item-title' ).text() ); 
    260259            if ( originalEvent && originalEvent.type == 'click' ) 
    261260                inputs.url.focus(); 
     
    265264            // Set URL and description to defaults. 
    266265            // Leave the new tab setting as-is. 
    267             inputs.url.val('http://'); 
    268             inputs.title.val(''); 
     266            inputs.url.val( 'http://' ); 
     267            inputs.title.val( '' ); 
    269268 
    270269            // Update save prompt. 
     
    273272 
    274273        searchInternalLinks: function() { 
    275             var t = $(this), waiting, 
     274            var t = $( this ), waiting, 
    276275                search = t.val(); 
    277276 
     
    285284 
    286285                wpLink.lastSearch = search; 
    287                 waiting = t.parent().find('.spinner').show(); 
     286                waiting = $( '#river-waiting' ).show(); 
    288287 
    289288                rivers.search.change( search ); 
    290                 rivers.search.ajax( function(){ waiting.hide(); }); 
     289                rivers.search.ajax( function() { 
     290                    waiting.hide(); 
     291                }); 
    291292            } else { 
    292293                rivers.search.hide(); 
     
    306307 
    307308        keydown: function( event ) { 
    308             var fn, key = $.ui.keyCode; 
    309  
    310             if ( key.ESCAPE === event.which ) { 
     309            var fn, id, 
     310                key = $.ui.keyCode; 
     311 
     312            if ( key.ESCAPE === event.keyCode ) { 
    311313                wpLink.close(); 
    312314                event.stopImmediatePropagation(); 
    313             } 
    314  
    315             if ( event.which !== key.UP && event.which !== key.DOWN ) { 
    316                 return; 
    317             } 
    318  
    319             fn = event.which === key.UP ? 'prev' : 'next'; 
     315            } else if ( key.TAB === event.keyCode ) { 
     316                id = event.target.id; 
     317 
     318                if ( id === 'wp-link-submit' && ! event.shiftKey ) { 
     319                    inputs.close.focus(); 
     320                    event.preventDefault(); 
     321                } else if ( id === 'wp-link-close' && event.shiftKey ) { 
     322                    inputs.submit.focus(); 
     323                    event.preventDefault(); 
     324                } 
     325            } 
     326 
     327            if ( event.keyCode !== key.UP && event.keyCode !== key.DOWN ) { 
     328                return; 
     329            } 
     330 
     331            fn = event.keyCode === key.UP ? 'prev' : 'next'; 
    320332            clearInterval( wpLink.keyInterval ); 
    321333            wpLink[ fn ](); 
     
    344356                // Otherwise, wait. 
    345357                timeoutTriggered = true; 
    346             }, delay); 
     358            }, delay ); 
    347359 
    348360            return function() { 
     
    356368        }, 
    357369 
    358         toggleInternalLinking: function( event ) { 
    359             var panel = $('#search-panel'), 
    360                 widget = inputs.dialog.wpdialog('widget'), 
    361                 // We're about to toggle visibility; it's currently the opposite 
    362                 visible = !panel.is(':visible'), 
    363                 win = $(window); 
    364  
    365             $(this).toggleClass('toggle-arrow-active', visible); 
    366  
    367             inputs.dialog.height('auto'); 
    368             panel.slideToggle( 300, function() { 
    369                 setUserSetting('wplink', visible ? '1' : '0'); 
    370                 inputs[ visible ? 'search' : 'url' ].focus(); 
    371  
    372                 // Move the box if the box is now expanded, was opened in a collapsed state, 
    373                 // and if it needs to be moved. (Judged by bottom not being positive or 
    374                 // bottom being smaller than top.) 
    375                 var scroll = win.scrollTop(), 
    376                     top = widget.offset().top, 
    377                     bottom = top + widget.outerHeight(), 
    378                     diff = bottom - win.height(); 
    379  
    380                 if ( diff > scroll ) { 
    381                     widget.animate({'top': diff < top ?  top - diff : scroll }, 200); 
    382                 } 
    383             }); 
    384             event.preventDefault(); 
     370        toggleInternalLinking: function() { 
     371            var visible = inputs.wrap.hasClass( 'search-panel-visible' ); 
     372 
     373            inputs.wrap.toggleClass( 'search-panel-visible', ! visible ); 
     374            setUserSetting( 'wplink', visible ? '0' : '1' ); 
     375            inputs[ ! visible ? 'search' : 'url' ].focus(); 
    385376        } 
    386377    }; 
     
    389380        var self = this; 
    390381        this.element = element; 
    391         this.ul = element.children('ul'); 
    392         this.waiting = element.find('.river-waiting'); 
     382        this.ul = element.children( 'ul' ); 
     383        this.contentHeight = element.children( '#link-selector-height' ); 
     384        this.waiting = $( '#river-waiting' ); 
    393385 
    394386        this.change( search ); 
    395387        this.refresh(); 
    396388 
    397         element.scroll( function(){ self.maybeLoad(); }); 
    398         element.delegate('li', 'click', function(e){ self.select( $(this), e ); }); 
     389        $( '#wp-link .query-results, #wp-link #link-selector' ).scroll( function() { 
     390            self.maybeLoad(); 
     391        }); 
     392        element.on( 'click', 'li', function( event ) { 
     393            self.select( $( this ), event ); 
     394        }); 
    399395    }; 
    400396 
     
    402398        refresh: function() { 
    403399            this.deselect(); 
    404             this.visible = this.element.is(':visible'); 
     400            this.visible = this.element.is( ':visible' ); 
    405401        }, 
    406402        show: function() { 
     
    419415            var liHeight, elHeight, liTop, elTop; 
    420416 
    421             if ( li.hasClass('unselectable') || li == this.selected ) 
     417            if ( li.hasClass( 'unselectable' ) || li == this.selected ) 
    422418                return; 
    423419 
    424420            this.deselect(); 
    425             this.selected = li.addClass('selected'); 
     421            this.selected = li.addClass( 'selected' ); 
    426422            // Make sure the element is visible 
    427423            liHeight = li.outerHeight(); 
     
    436432 
    437433            // Trigger the river-select event 
    438             this.element.trigger('river-select', [ li, event, this ]); 
     434            this.element.trigger( 'river-select', [ li, event, this ] ); 
    439435        }, 
    440436        deselect: function() { 
    441437            if ( this.selected ) 
    442                 this.selected.removeClass('selected'); 
     438                this.selected.removeClass( 'selected' ); 
    443439            this.selected = false; 
    444440        }, 
     
    449445            var to; 
    450446            if ( this.selected ) { 
    451                 to = this.selected.prev('li'); 
     447                to = this.selected.prev( 'li' ); 
    452448                if ( to.length ) 
    453449                    this.select( to ); 
     
    458454                return; 
    459455 
    460             var to = this.selected ? this.selected.next('li') : $('li:not(.unselectable):first', this.element); 
     456            var to = this.selected ? this.selected.next( 'li' ) : $( 'li:not(.unselectable):first', this.element ); 
    461457            if ( to.length ) 
    462458                this.select( to ); 
     
    479475            this._search = search; 
    480476            this.query = new Query( search ); 
    481             this.element.scrollTop(0); 
     477            this.element.scrollTop( 0 ); 
    482478        }, 
    483479        process: function( results, params ) { 
     
    485481                firstPage = params.page == 1; 
    486482 
    487             if ( !results ) { 
     483            if ( ! results ) { 
    488484                if ( firstPage ) { 
    489485                    list += '<li class="unselectable"><span class="item-title"><em>' + 
     
    510506                bottom = el.scrollTop() + el.height(); 
    511507 
    512             if ( ! this.query.ready() || bottom < this.ul.height() - wpLink.riverBottomThreshold ) 
     508            if ( ! this.query.ready() || bottom < this.contentHeight.height() - wpLink.riverBottomThreshold ) 
    513509                return; 
    514510 
     
    517513                    newBottom = newTop + el.height(); 
    518514 
    519                 if ( ! self.query.ready() || newBottom < self.ul.height() - wpLink.riverBottomThreshold ) 
     515                if ( ! self.query.ready() || newBottom < self.contentHeight.height() - wpLink.riverBottomThreshold ) 
    520516                    return; 
    521517 
     
    523519                el.scrollTop( newTop + self.waiting.outerHeight() ); 
    524520 
    525                 self.ajax( function() { self.waiting.hide(); }); 
     521                self.ajax( function() { 
     522                    self.waiting.hide(); 
     523                }); 
    526524            }, wpLink.timeToTriggerRiver ); 
    527525        } 
     
    537535    $.extend( Query.prototype, { 
    538536        ready: function() { 
    539             return !( this.querying || this.allLoaded ); 
     537            return ! ( this.querying || this.allLoaded ); 
    540538        }, 
    541539        ajax: function( callback ) { 
     
    552550            this.querying = true; 
    553551 
    554             $.post( ajaxurl, query, function(r) { 
     552            $.post( ajaxurl, query, function( r ) { 
    555553                self.page++; 
    556554                self.querying = false; 
    557                 self.allLoaded = !r; 
     555                self.allLoaded = ! r; 
    558556                callback( r, query ); 
    559557            }, 'json' ); 
     
    561559    }); 
    562560 
    563     $(document).ready( wpLink.init ); 
    564 })(jQuery); 
     561    $( document ).ready( wpLink.init ); 
     562})( jQuery ); 
  • trunk/src/wp-includes/script-loader.php

    r27445 r27494  
    339339    $scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", array(), false, 1 ); 
    340340 
    341     $scripts->add( 'wplink', "/wp-includes/js/wplink$suffix.js", array( 'jquery', 'wpdialogs' ), false, 1 ); 
     341    $scripts->add( 'wplink', "/wp-includes/js/wplink$suffix.js", array( 'jquery' ), false, 1 ); 
    342342    did_action( 'init' ) && $scripts->localize( 'wplink', 'wpLinkL10n', array( 
    343343        'title' => __('Insert/edit link'), 
Note: See TracChangeset for help on using the changeset viewer.