Ticket #11420: river.diff
File river.diff, 10.0 KB (added by , 10 years ago) |
---|
-
wp-includes/js/tinymce/plugins/wplink/editor_plugin.js
1 (function(){tinymce.create("tinymce.plugins.wpLink",{init:function(a,b){a.addCommand("WP_Link",function(){a.windowManager.open({file:tinymce.baseURL+"/wp-mce-link.php",width:480,height:4 00,inline:1},{plugin_url:b})});a.addButton("link",{title:a.getLang("advanced.link_desc"),cmd:"WP_Link"});a.addShortcut("alt+shift+a",a.getLang("advanced.link_desc"),"WP_Link");a.onNodeChange.add(function(d,c,e){c.setActive("wplink",e.nodeName=="A")})},getInfo:function(){return{longname:"WordPress Link Dialog",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wplink",tinymce.plugins.wpLink)})();2 No newline at end of file 1 (function(){tinymce.create("tinymce.plugins.wpLink",{init:function(a,b){a.addCommand("WP_Link",function(){a.windowManager.open({file:tinymce.baseURL+"/wp-mce-link.php",width:480,height:430,inline:1},{plugin_url:b})});a.addButton("link",{title:a.getLang("advanced.link_desc"),cmd:"WP_Link"});a.addShortcut("alt+shift+a",a.getLang("advanced.link_desc"),"WP_Link");a.onNodeChange.add(function(d,c,e){c.setActive("wplink",e.nodeName=="A")})},getInfo:function(){return{longname:"WordPress Link Dialog",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wplink",tinymce.plugins.wpLink)})(); 2 No newline at end of file -
wp-includes/js/tinymce/plugins/wplink/js/wplink.dev.js
1 1 (function($){ 2 2 var inputs = {}, results = {}, ed, 3 3 wpLink = { 4 lastSearch: '', 5 riverDefaults: function() { 6 return { 7 page : 2, 8 allLoaded: false, 9 active: false 10 }; 11 }, 4 12 init : function() { 5 13 var e, etarget, eclass; 6 14 // Init shared vars … … 17 25 // Result lists 18 26 results.search = $('#search-results'); 19 27 results.recent = $('#most-recent-results'); 28 results.search.data('river', wpLink.riverDefaults() ); 29 results.recent.data('river', wpLink.riverDefaults() ); 20 30 21 31 // Bind event handlers 22 32 $('#wp-update').click( wpLink.update ); 23 33 $('#wp-cancel').click( function() { tinyMCEPopup.close(); } ); 24 34 $('.query-results').delegate('li', 'click', wpLink.selectInternalLink ); 25 $('. wp-results-pagelinks').delegate('a', 'click', wpLink.selectPageLink);35 $('.query-results').scroll( wpLink.maybeLoadRiver ); 26 36 inputs.search.keyup( wpLink.searchInternalLinks ); 27 37 28 38 // If link exists, select proper values. … … 34 44 if ( "_blank" == ed.dom.getAttrib(e, 'target') ) 35 45 inputs.openInNewTab.attr('checked','checked'); 36 46 } 47 48 // Focus the URL field 49 inputs.url.focus(); 37 50 }, 38 51 39 52 update : function() { … … 113 126 inputs.title.val( t.children('.item-title').text() ); 114 127 }, 115 128 116 selectPageLink : function(e) { 117 var page = e.target.href.match(/page=(\d+)/); 129 maybeLoadRiver : function() { 130 var t = $(this), 131 ul = t.children('ul'), 132 river = t.data('river'), 133 waiting = t.find('.river-waiting'); 118 134 119 page = page ? page[1] : 1; // If there's no match, it's the first page.120 e.preventDefault(); // Prevent the link from redirecting.135 if( t.scrollTop() + t.height() != ul.height() || river.active || river.allLoaded ) 136 return; 121 137 122 wpLink.linkAJAX( $(this), { page : page }); 138 river.active = true; 139 waiting.show(); 140 141 wpLink.linkAJAX( t, { page : river.page }, function(r) { 142 river.page++; 143 river.active = false; 144 river.allLoaded = !r; 145 waiting.hide(); 146 }, true); 123 147 }, 124 148 125 149 searchInternalLinks : function() { 126 150 var t = $(this), waiting, 127 151 title = t.val(); 128 152 129 if ( title ) {153 if ( title.length > 2 ) { 130 154 results.recent.hide(); 131 155 results.search.show(); 156 157 // Don't search if the keypress didn't change the title. 158 if ( wpLink.lastSearch == title ) 159 return; 160 161 wpLink.lastSearch = title; 132 162 waiting = t.siblings('img.waiting').show(); 163 164 results.search.data('river', wpLink.riverDefaults() ); 165 results.search.scrollTop(0); 133 166 wpLink.linkAJAX( results.search, { title : title }, function(){ waiting.hide(); }); 134 167 } else { 135 168 results.search.hide(); … … 137 170 } 138 171 }, 139 172 140 linkAJAX : function( $panel, params, callback ) {173 linkAJAX : function( $panel, params, callback, append ) { 141 174 if ( ! $panel.hasClass('query-results') ) 142 175 $panel = $panel.parents('.query-results'); 143 176 … … 146 179 147 180 $.post( ajaxurl, $.extend({ 148 181 action : 'wp-link-ajax' 149 }, params ), function( r) {150 var pagelinks = $panel.children('.wp-results-pagelinks');182 }, params ), function( results ) { 183 var list = ''; 151 184 185 if ( !results ) { 186 if ( !append ) { 187 list += '<li class="no-matches-found unselectable"><span class="item-title"><em>' 188 + wpLinkL10n.noMatchesFound 189 + '</em></span></li>'; 190 } 191 } else { 192 $.each( results, function() { 193 list += '<li><input type="hidden" class="item-permalink" value="' + this['permalink'] + '" />'; 194 list += '<span class="item-title">'; 195 list += this['title'] ? this['title'] : '<em>'+ wpLinkL10n.untitled + '</em>'; 196 list += '</span><span class="item-info">' + this['info'] + '</span></li>'; 197 }); 198 } 199 152 200 // Set results 153 $panel.children('ul') .html( wpLink.generateListMarkup( r['results'] ));201 $panel.children('ul')[ append ? 'append' : 'html' ]( list ); 154 202 155 // Handle page links156 if ( r['page_links'] )157 pagelinks.html( r['page_links'] ).show();158 else159 pagelinks.hide();160 161 203 // Run callback 162 204 if ( callback ) 163 callback( r ['results']);205 callback( results ); 164 206 }, "json" ); 165 },166 167 generateListMarkup : function( results ) {168 var s = '';169 170 if ( ! results )171 return '<li class="no-matches-found unselectable"><span class="item-title"><em>' + wpLinkL10n.noMatchesFound + '</em></span></li>';172 173 $.each( results, function() {174 s+= '<li><input type="hidden" class="item-permalink" value="' + this['permalink'] + '" />';175 s+= '<span class="item-title">'176 s+= this['title'] ? this['title'] : '<em>'+ wpLinkL10n.untitled + '</em>';177 s+= '</span><span class="item-info">' + this['info'] + '</span>';178 s+= '</li>';179 });180 return s;181 207 } 182 208 } 183 209 -
wp-includes/js/tinymce/plugins/wplink/editor_plugin.dev.js
14 14 ed.windowManager.open({ 15 15 file : tinymce.baseURL + '/wp-mce-link.php', 16 16 width : 480, 17 height : 4 00,17 height : 430, 18 18 inline : 1 19 19 }, { 20 20 plugin_url : url // Plugin absolute URL -
wp-includes/js/tinymce/wp-mce-link.php
127 127 #search-results { 128 128 display: none; 129 129 } 130 .river-waiting { 131 display: none; 132 padding: 10px 0; 133 } 134 .river-waiting img.waiting { 135 margin: 0 auto; 136 display: block; 137 } 130 138 .submitbox { 131 139 padding: 5px 5px 0; 132 140 font-size: 11px; … … 181 189 <div id="most-recent-results" class="query-results"> 182 190 <ul> 183 191 <li class="unselectable"><em><?php _e( 'No search term specified. Showing recent items.' ); ?></em></li> 184 <?php foreach ( $most_recent ['results']as $item ) : ?>192 <?php foreach ( $most_recent as $item ) : ?> 185 193 <li> 186 194 <input type="hidden" class="item-permalink" value="<?php echo esc_url( $item['permalink'] ); ?>" /> 187 195 <span class="item-title"><?php echo $item['title']; ?></span> -
wp-includes/js/tinymce/wp-mce-link-includes.php
20 20 if ( isset( $args['s'] ) ) 21 21 $query['s'] = $args['s']; 22 22 23 $pagination = array( 24 'current' => $args['pagenum'], 25 'per_page' => $query['posts_per_page'], 26 ); 23 $query['offset'] = $args['pagenum'] > 1 ? $query['posts_per_page'] * ( $args['pagenum'] - 1 ) : 0; 27 24 28 $query['offset'] = $pagination['offset'] = $args['pagenum'] > 1 ? $query['posts_per_page'] * ( $args['pagenum'] - 1 ) : 0;29 30 25 // Do main query. 31 26 $get_posts = new WP_Query; 32 27 $posts = $get_posts->query( $query ); … … 47 42 'title' => esc_html( strip_tags($post->post_title) ), 48 43 'permalink' => get_permalink( $post->ID ), 49 44 'info' => $info, 50 ); ;45 ); 51 46 } 52 47 53 // Remaining pagination values. 54 $pagination['max'] = $get_posts->max_num_pages; 55 $pagination['page_links'] = paginate_links( array( 56 'prev_text' => __('«'), 57 'next_text' => __('»'), 58 'total' => $pagination['max'], 59 'current' => $pagination['current'] 60 ) ); 61 62 // Build response. 63 $resp = array( 64 'query' => $get_posts, 65 'objects' => $posts, 66 'results' => $results, 67 'pages' => $pagination, 68 ); 69 70 return $resp; 48 return $results; 71 49 } 72 50 73 51 function wp_link_ajax( $request ) { … … 76 54 $args['s'] = stripslashes( $request['title'] ); 77 55 $args['pagenum'] = ! empty( $request['page'] ) ? absint( $request['page'] ) : 1; 78 56 79 $res p= wp_link_query( $args );57 $results = wp_link_query( $args ); 80 58 81 if ( ! isset( $res p) )59 if ( ! isset( $results ) ) 82 60 die( '0' ); 83 84 $json = array( 'results' => $resp['results'] );85 if ( isset( $resp['pages'] ) && !empty( $resp['pages']['page_links'] ) )86 $json['page_links'] = $resp['pages']['page_links'];87 61 88 echo json_encode( $ json);62 echo json_encode( $results ); 89 63 echo "\n"; 90 64 } 91 65