WordPress.org

Make WordPress Core

Ticket #11420: wpdialogs-and-friends.diff

File wpdialogs-and-friends.diff, 59.2 KB (added by koopersmith, 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: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
     1(function(){tinymce.create("tinymce.plugins.wpLink",{init:function(a,b){a.addCommand("WP_Link",function(){a.windowManager.open({id:"wp-link",width:480,height:"auto",wpDialog:true,title:a.getLang("advlink.link_desc")},{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/css/wplink.dev.css

     
     1#wp-link p.howto {
     2        margin: 3px;
     3}
     4#link-options {
     5        padding: 10px 0 14px;
     6        border-bottom: 1px solid #dfdfdf;
     7        margin: 0 6px 14px;
     8}
     9#wp-link label input[type="text"] {
     10        width: 360px;
     11        margin-top: 5px;
     12}
     13#wp-link label span {
     14        display: inline-block;
     15        width: 80px;
     16        text-align: right;
     17        padding-right: 5px;
     18}
     19#wp-link .link-search-wrapper {
     20        margin: 5px 5px 9px;
     21        display: block;
     22        overflow: hidden;
     23}
     24#wp-link .link-search-wrapper span {
     25        float: left;
     26        margin-top: 6px;
     27}
     28#wp-link .link-search-wrapper input[type="text"] {
     29        float: left;
     30        width: 220px;
     31}
     32#wp-link .link-search-wrapper img.waiting {
     33        margin: 8px 1px 0 4px;
     34        float: left;
     35        display: none;
     36}
     37#open-in-new-tab {
     38        display: inline-block;
     39        padding: 3px 0 0;
     40        margin: 0 0 0 87px;
     41}
     42#open-in-new-tab span {
     43        width: auto;
     44        margin-left: 6px;
     45        font-size: 11px;
     46}
     47.query-results {
     48        border: 1px #dfdfdf solid;
     49        margin: 0 5px 5px;
     50        background: #fff;
     51        height: 185px;
     52        overflow: auto;
     53}
     54.query-results li {
     55        margin-bottom: 0;
     56        border-bottom: 1px solid #f1f1f1;
     57        color: #555;
     58        padding: 4px 6px;
     59        cursor: pointer;
     60}
     61.query-results li:hover {
     62        background: #eaf2fa;
     63        color: #333;
     64}
     65#wp-link .query-results li.unselectable:hover {
     66        background: #fff;
     67        cursor: auto;
     68        color: #555;
     69}
     70#wp-link .query-results li.unselectable {
     71        border-bottom: 1px solid #dfdfdf;
     72}
     73#wp-link .query-results li.selected {
     74        background: #f1f1f1;
     75        color: #333;
     76}
     77#wp-link .query-results li.selected .item-title {
     78        font-weight: bold;
     79}
     80#wp-link .item-info {
     81        text-transform: uppercase;
     82        color: #aaa;
     83        font-size: 11px;
     84        float: right;
     85}
     86#search-results {
     87        display: none;
     88}
     89#wp-link .river-waiting {
     90        display: none;
     91        padding: 10px 0;
     92}
     93#wp-link .river-waiting img.waiting {
     94        margin: 0 auto;
     95        display: block;
     96}
     97#wp-link .submitbox {
     98        padding: 5px 5px 0;
     99        font-size: 11px;
     100        overflow: auto;
     101        height: 29px;
     102}
     103#wp-link-cancel {
     104        line-height: 25px;
     105        float: left;
     106}
     107#wp-link-update {
     108        line-height: 23px;
     109        float: right;
     110}
     111#wp-link-update a {
     112        display: inline-block;
     113}
     114 No newline at end of file
  • wp-includes/js/tinymce/plugins/wplink/css/wplink.css

     
     1#wp-link p.howto{margin:3px;}#link-options{padding:10px 0 14px;border-bottom:1px solid #dfdfdf;margin:0 6px 14px;}#wp-link label input[type="text"]{width:360px;margin-top:5px;}#wp-link label span{display:inline-block;width:80px;text-align:right;padding-right:5px;}#wp-link .link-search-wrapper{margin:5px 5px 9px;display:block;overflow:hidden;}#wp-link .link-search-wrapper span{float:left;margin-top:6px;}#wp-link .link-search-wrapper input[type="text"]{float:left;width:220px;}#wp-link .link-search-wrapper img.waiting{margin:8px 1px 0 4px;float:left;display:none;}#open-in-new-tab{display:inline-block;padding:3px 0 0;margin:0 0 0 87px;}#open-in-new-tab span{width:auto;margin-left:6px;font-size:11px;}.query-results{border:1px #dfdfdf solid;margin:0 5px 5px;background:#fff;height:185px;overflow:auto;}.query-results li{margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#555;padding:4px 6px;cursor:pointer;}.query-results li:hover{background:#eaf2fa;color:#333;}#wp-link .query-results li.unselectable:hover{background:#fff;cursor:auto;color:#555;}#wp-link .query-results li.unselectable{border-bottom:1px solid #dfdfdf;}#wp-link .query-results li.selected{background:#f1f1f1;color:#333;}#wp-link .query-results li.selected .item-title{font-weight:bold;}#wp-link .item-info{text-transform:uppercase;color:#aaa;font-size:11px;float:right;}#search-results{display:none;}#wp-link .river-waiting{display:none;padding:10px 0;}#wp-link .river-waiting img.waiting{margin:0 auto;display:block;}#wp-link .submitbox{padding:5px 5px 0;font-size:11px;overflow:auto;height:29px;}#wp-link-cancel{line-height:25px;float:left;}#wp-link-update{line-height:23px;float:right;}#wp-link-update a{display:inline-block;}
     2 No newline at end of file
  • wp-includes/js/tinymce/plugins/wplink/js/wplink.js

     
    1 (function(d){var a={},c={},b,e={timeToTriggerRiver:150,minRiverAJAXDuration:200,lastSearch:"",riverDefaults:function(){return{page:2,allLoaded:false,active:false}},init:function(){var f;b=tinyMCEPopup.editor;a.url=d("#url-field");a.title=d("#link-title-field");a.openInNewTab=d("#link-target-checkbox");a.search=d("#search-field");c.search=d("#search-results");c.recent=d("#most-recent-results");c.search.data("river",e.riverDefaults());c.recent.data("river",e.riverDefaults());d("#wp-update").click(e.update);d("#wp-cancel").click(function(){tinyMCEPopup.close()});d(".query-results").delegate("li","click",e.selectInternalLink);d(".query-results").scroll(e.maybeLoadRiver);a.search.keyup(e.searchInternalLinks);if(f=b.dom.getParent(b.selection.getNode(),"A")){a.url.val(f.href);a.title.val(b.dom.getAttrib(f,"title"));if("_blank"==b.dom.getAttrib(f,"target")){a.openInNewTab.attr("checked","checked")}}a.url.focus()},update:function(){var j,g=tinyMCEPopup.editor,h={href:a.url.val(),title:a.title.val(),target:a.openInNewTab.attr("checked")?"_blank":""},k,f,i=h.title?h.title:h.href;tinyMCEPopup.restoreSelection();k=g.dom.getParent(g.selection.getNode(),"A");if(!h.href){if(g.selection.isCollapsed()){tinyMCEPopup.close();return}else{if(k){tinyMCEPopup.execCommand("mceBeginUndoLevel");f=g.selection.getBookmark();g.dom.remove(k,1);g.selection.moveToBookmark(f);tinyMCEPopup.execCommand("mceEndUndoLevel");tinyMCEPopup.close();return}}}tinyMCEPopup.execCommand("mceBeginUndoLevel");if(k==null){g.getDoc().execCommand("unlink",false,null);if(g.selection.isCollapsed()){j=g.dom.create("a",{href:"#mce_temp_url#"},i);g.selection.setNode(j)}else{tinyMCEPopup.execCommand("CreateLink",false,"#mce_temp_url#",{skip_undo:1})}tinymce.each(g.dom.select("a"),function(l){if(g.dom.getAttrib(l,"href")=="#mce_temp_url#"){k=l;g.dom.setAttribs(k,h)}})}else{g.dom.setAttribs(k,h)}if(k.childNodes.length!=1||k.firstChild.nodeName!="IMG"){g.focus();g.selection.select(k);g.selection.collapse(0);tinyMCEPopup.storeSelection()}tinyMCEPopup.execCommand("mceEndUndoLevel");tinyMCEPopup.close()},selectInternalLink:function(){var f=d(this);if(f.hasClass("unselectable")){return}f.siblings(".selected").removeClass("selected");f.addClass("selected");a.url.val(f.children(".item-permalink").val());a.title.val(f.children(".item-title").text())},maybeLoadRiver:function(){var h=d(this),g=h.children("ul"),i=h.data("river"),f=h.scrollTop()+h.height();if(f!=g.height()||i.active||i.allLoaded){return}setTimeout(function(){var j=h.scrollTop(),k=j+h.height(),l=h.find(".river-waiting");if(f!=k||k!=g.height()||i.active||i.allLoaded){return}i.active=true;l.show();h.scrollTop(j+l.outerHeight());e.linkAJAX(h,{page:i.page},function(m){i.page++;i.active=false;i.allLoaded=!m;l.hide()},{append:true,delay:e.minRiverAJAXDuration})},e.timeToTriggerRiver)},searchInternalLinks:function(){var f=d(this),h,g=f.val();if(g.length>2){c.recent.hide();c.search.show();if(e.lastSearch==g){return}e.lastSearch=g;h=f.siblings("img.waiting").show();c.search.data("river",e.riverDefaults());c.search.scrollTop(0);e.linkAJAX(c.search,{title:g},function(){h.hide()})}else{c.search.hide();c.recent.show()}},linkAJAX:function(i,h,j,g){var f;g=g||{};if(!i.hasClass("query-results")){i=i.parents(".query-results")}if(!i.length){return}f=e.delayedCallback(function(k){e.processAJAXResponse(i,k,j,g)},g.delay);d.post(ajaxurl,d.extend({action:"wp-link-ajax"},h),f,"json")},processAJAXResponse:function(i,f,j,g){var h="";if(!f){if(!g.append){h+='<li class="no-matches-found unselectable"><span class="item-title"><em>'+wpLinkL10n.noMatchesFound+"</em></span></li>"}}else{d.each(f,function(){h+='<li><input type="hidden" class="item-permalink" value="'+this["permalink"]+'" />';h+='<span class="item-title">';h+=this["title"]?this["title"]:"<em>"+wpLinkL10n.untitled+"</em>";h+='</span><span class="item-info">'+this["info"]+"</span></li>"})}i.children("ul")[g.append?"append":"html"](h);if(j){j(f)}},delayedCallback:function(h,f){var k,j,i,g;if(!f){return h}setTimeout(function(){if(j){return h.apply(g,i)}k=true},f);return function(){if(k){return h.apply(this,arguments)}i=arguments;g=this;j=true}}};d(document).ready(e.init)})(jQuery);
    2  No newline at end of file
     1(function(d){var a={},c={},b,e={timeToTriggerRiver:150,minRiverAJAXDuration:200,lastSearch:"",riverDefaults:function(){return{page:2,allLoaded:false,active:false}},init:function(){a.dialog=d("#wp-link");a.url=d("#url-field");a.title=d("#link-title-field");a.openInNewTab=d("#link-target-checkbox");a.search=d("#search-field");c.search=d("#search-results");c.recent=d("#most-recent-results");c.search.data("river",e.riverDefaults());c.recent.data("river",e.riverDefaults());c.group=d(".query-results",a.dialog);d("#wp-link-update").click(e.update);d("#wp-link-cancel").click(function(){tinyMCEPopup.close()});c.group.delegate("li","click",e.selectInternalLink);c.group.scroll(e.maybeLoadRiver);a.search.keyup(e.searchInternalLinks);a.dialog.bind("dialogopen",e.refresh)},refresh:function(){var f;b=tinyMCEPopup.editor;if(f=b.dom.getParent(b.selection.getNode(),"A")){a.url.val(f.href);a.title.val(b.dom.getAttrib(f,"title"));if("_blank"==b.dom.getAttrib(f,"target")){a.openInNewTab.attr("checked","checked")}}c.group.find(".selected").removeClass("selected");a.url.focus()},update:function(){var j,g=tinyMCEPopup.editor,h={href:a.url.val(),title:a.title.val(),target:a.openInNewTab.attr("checked")?"_blank":""},k,f,i=h.title?h.title:h.href;tinyMCEPopup.restoreSelection();k=g.dom.getParent(g.selection.getNode(),"A");if(!h.href){if(g.selection.isCollapsed()){tinyMCEPopup.close();return}else{if(k){tinyMCEPopup.execCommand("mceBeginUndoLevel");f=g.selection.getBookmark();g.dom.remove(k,1);g.selection.moveToBookmark(f);tinyMCEPopup.execCommand("mceEndUndoLevel");tinyMCEPopup.close();return}}}tinyMCEPopup.execCommand("mceBeginUndoLevel");if(k==null){g.getDoc().execCommand("unlink",false,null);if(g.selection.isCollapsed()){j=g.dom.create("a",{href:"#mce_temp_url#"},i);g.selection.setNode(j)}else{tinyMCEPopup.execCommand("CreateLink",false,"#mce_temp_url#",{skip_undo:1})}tinymce.each(g.dom.select("a"),function(l){if(g.dom.getAttrib(l,"href")=="#mce_temp_url#"){k=l;g.dom.setAttribs(k,h)}})}else{g.dom.setAttribs(k,h)}if(k.childNodes.length!=1||k.firstChild.nodeName!="IMG"){g.focus();g.selection.select(k);g.selection.collapse(0);tinyMCEPopup.storeSelection()}tinyMCEPopup.execCommand("mceEndUndoLevel");tinyMCEPopup.close()},selectInternalLink:function(){var f=d(this);if(f.hasClass("unselectable")){return}f.siblings(".selected").removeClass("selected");f.addClass("selected");a.url.val(f.children(".item-permalink").val());a.title.val(f.children(".item-title").text())},maybeLoadRiver:function(){var h=d(this),g=h.children("ul"),i=h.data("river"),f=h.scrollTop()+h.height();if(f!=g.height()||i.active||i.allLoaded){return}setTimeout(function(){var j=h.scrollTop(),k=j+h.height(),l=h.find(".river-waiting");if(f!=k||k!=g.height()||i.active||i.allLoaded){return}i.active=true;l.show();h.scrollTop(j+l.outerHeight());e.linkAJAX(h,{page:i.page},function(m){i.page++;i.active=false;i.allLoaded=!m;l.hide()},{append:true,delay:e.minRiverAJAXDuration})},e.timeToTriggerRiver)},searchInternalLinks:function(){var f=d(this),h,g=f.val();if(g.length>2){c.recent.hide();c.search.show();if(e.lastSearch==g){return}e.lastSearch=g;h=f.siblings("img.waiting").show();c.search.data("river",e.riverDefaults());c.search.scrollTop(0);e.linkAJAX(c.search,{title:g},function(){h.hide()})}else{c.search.hide();c.recent.show()}},linkAJAX:function(i,h,j,g){var f;g=g||{};if(!i.hasClass("query-results")){i=i.parents(".query-results")}if(!i.length){return}f=e.delayedCallback(function(k){e.processAJAXResponse(i,k,j,g)},g.delay);d.post(ajaxurl,d.extend({action:"wp-link-ajax"},h),f,"json")},processAJAXResponse:function(i,f,j,g){var h="";if(!f){if(!g.append){h+='<li class="no-matches-found unselectable"><span class="item-title"><em>'+wpLinkL10n.noMatchesFound+"</em></span></li>"}}else{d.each(f,function(){h+='<li><input type="hidden" class="item-permalink" value="'+this["permalink"]+'" />';h+='<span class="item-title">';h+=this["title"]?this["title"]:"<em>"+wpLinkL10n.untitled+"</em>";h+='</span><span class="item-info">'+this["info"]+"</span></li>"})}i.children("ul")[g.append?"append":"html"](h);if(j){j(f)}},delayedCallback:function(h,f){var k,j,i,g;if(!f){return h}setTimeout(function(){if(j){return h.apply(g,i)}k=true},f);return function(){if(k){return h.apply(this,arguments)}i=arguments;g=this;j=true}}};d(document).ready(e.init)})(jQuery);
     2 No newline at end of file
  • wp-includes/js/tinymce/plugins/wplink/js/wplink.dev.js

     
    1212                        };
    1313                },
    1414                init : function() {
    15                         var e;
    16                         // Init shared vars
    17                         ed = tinyMCEPopup.editor;
    18 
    19 
     15                        inputs.dialog = $('#wp-link');
    2016                        // URL
    2117                        inputs.url = $('#url-field');
    2218                        // Secondary options
     
    2925                        results.recent = $('#most-recent-results');
    3026                        results.search.data('river', wpLink.riverDefaults() );
    3127                        results.recent.data('river', wpLink.riverDefaults() );
     28                        results.group = $('.query-results', inputs.dialog);
    3229
    3330                        // Bind event handlers
    34                         $('#wp-update').click( wpLink.update );
    35                         $('#wp-cancel').click( function() { tinyMCEPopup.close(); } );
    36                         $('.query-results').delegate('li', 'click', wpLink.selectInternalLink );
    37                         $('.query-results').scroll( wpLink.maybeLoadRiver );
     31                        $('#wp-link-update').click( wpLink.update );
     32                        $('#wp-link-cancel').click( function() { tinyMCEPopup.close(); } );
     33                       
     34                        results.group.delegate('li', 'click', wpLink.selectInternalLink )
     35                        results.group.scroll( wpLink.maybeLoadRiver );
     36                       
    3837                        inputs.search.keyup( wpLink.searchInternalLinks );
     38                       
     39                        inputs.dialog.bind('dialogopen', wpLink.refresh);
     40                },
    3941
     42                refresh : function() {
     43                        var e;
     44                       
     45                        ed = tinyMCEPopup.editor;
     46                       
    4047                        // If link exists, select proper values.
    4148                        if ( e = ed.dom.getParent(ed.selection.getNode(), 'A') ) {
    4249                                // Set URL and description.
     
    4754                                        inputs.openInNewTab.attr('checked','checked');
    4855                        }
    4956
     57                        // Clear previously selected links
     58                        results.group.find('.selected').removeClass('selected');
    5059                        // Focus the URL field
    5160                        inputs.url.focus();
    5261                },
  • wp-includes/js/tinymce/plugins/wplink/editor_plugin.dev.js

     
    1212                        // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
    1313                        ed.addCommand('WP_Link', function() {
    1414                                ed.windowManager.open({
    15                                         file : tinymce.baseURL + '/wp-mce-link.php',
     15                                        id : 'wp-link',
    1616                                        width : 480,
    17                                         height : 430,
    18                                         inline : 1
     17                                        height : "auto",
     18                                        wpDialog : true,
     19                                        title : ed.getLang('advlink.link_desc')
    1920                                }, {
    2021                                        plugin_url : url // Plugin absolute URL
    2122                                });
  • wp-includes/js/tinymce/plugins/wpdialogs/editor_plugin.js

     
     1(function(b){var a=function(c){return function(){if(this.features.wpDialog){return c.apply(this,arguments)}else{return this.parent.apply(this,arguments)}}};tinymce.create("tinymce.plugins.WPDialogs",{init:function(c,d){c.onBeforeRenderUI.add(function(){c.windowManager=new tinymce.WPWindowManager(c)})},getInfo:function(){return{longname:"WPDialogs",author:"WordPress",authorurl:"http://wordpress.org",infourl:"http://wordpress.org",version:"0.1"}}});tinymce.create("tinymce.WPWindowManager:tinymce.InlineWindowManager",{WPWindowManager:function(c){this.parent(c)},open:function(e,g){var d=this,c;if(!e.wpDialog){return this.parent(e,g)}else{if(!e.id){return}}c=b("#"+e.id);if(!c.length){return}d.features=e;d.params=g;d.onOpen.dispatch(d,e,g);d.element=d.windows[e.id]=c;if(tinyMCEPopup){tinyMCEPopup.init()}c.dialog({title:e.title,width:e.width,height:e.height,modal:true})},close:a(function(){this.element.dialog("close")}),});tinymce.PluginManager.add("wpdialogs",tinymce.plugins.WPDialogs)})(jQuery);
     2 No newline at end of file
  • wp-includes/js/tinymce/plugins/wpdialogs/editor_plugin.dev.js

     
     1/**
     2 * editor_plugin_src.js
     3 *
     4 * Copyright 2009, Moxiecode Systems AB
     5 * Released under LGPL License.
     6 *
     7 * License: http://tinymce.moxiecode.com/license
     8 * Contributing: http://tinymce.moxiecode.com/contributing
     9 */
     10
     11(function($) {
     12        var wpDialogFn = function( fn ) {
     13                return function() {
     14                        if ( this.features.wpDialog )
     15                                return fn.apply( this, arguments );
     16                        else
     17                                return this.parent.apply( this, arguments );
     18                };
     19        };
     20
     21        tinymce.create('tinymce.plugins.WPDialogs', {
     22                init : function(ed, url) {
     23                        // Replace window manager
     24                        ed.onBeforeRenderUI.add(function() {
     25                                ed.windowManager = new tinymce.WPWindowManager(ed);
     26                        });
     27                },
     28
     29                getInfo : function() {
     30                        return {
     31                                longname : 'WPDialogs',
     32                                author : 'WordPress',
     33                                authorurl : 'http://wordpress.org',
     34                                infourl : 'http://wordpress.org',
     35                                version : '0.1'
     36                        };
     37                }
     38        });
     39
     40        tinymce.create('tinymce.WPWindowManager:tinymce.InlineWindowManager', {
     41                WPWindowManager : function(ed) {
     42                        this.parent(ed);
     43                },
     44
     45                open : function(f, p) {
     46                        var t = this, element;
     47                        // Can't use wpDialogFn here; this.features isn't set yet.
     48                        if ( ! f.wpDialog )
     49                                return this.parent( f, p );
     50                        else if ( ! f.id )
     51                                return;
     52                       
     53                        element = $('#' + f.id);
     54                        if ( ! element.length )
     55                                return;
     56                       
     57                        t.features = f;
     58                        t.params = p;
     59                        t.onOpen.dispatch(t, f, p);
     60                        t.element = t.windows[ f.id ] = element;
     61                       
     62                        if ( tinyMCEPopup )
     63                                tinyMCEPopup.init();
     64                       
     65                        element.dialog({
     66                                title: f.title,
     67                                width: f.width,
     68                                height: f.height,
     69                                modal: true
     70                        });
     71                },
     72                close : wpDialogFn(function() {
     73                        this.element.dialog('close');
     74                }),
     75        });
     76
     77        // Register plugin
     78        tinymce.PluginManager.add('wpdialogs', tinymce.plugins.WPDialogs);
     79})(jQuery);
     80
  • wp-includes/js/tinymce/plugins/wpdialogs/js/popup.dev.js

     
     1/**
     2 * popup.js
     3 *
     4 * An altered version of tinyMCEPopup to work in the same window as tinymce.
     5 *
     6 * ------------------------------------------------------------------
     7 *
     8 * Copyright 2009, Moxiecode Systems AB
     9 * Released under LGPL License.
     10 *
     11 * License: http://tinymce.moxiecode.com/license
     12 * Contributing: http://tinymce.moxiecode.com/contributing
     13 */
     14
     15// Some global instances
     16
     17/**
     18 * TinyMCE popup/dialog helper class. This gives you easy access to the
     19 * parent editor instance and a bunch of other things. It's higly recommended
     20 * that you load this script into your dialogs.
     21 *
     22 * @static
     23 * @class tinyMCEPopup
     24 */
     25var tinyMCEPopup = {
     26        /**
     27         * Initializes the popup this will be called automatically.
     28         *
     29         * @method init
     30         */
     31        init : function() {
     32                var t = this, w, ti;
     33
     34                // Find window & API
     35                w = t.getWin();
     36                tinymce = w.tinymce;
     37                tinyMCE = w.tinyMCE;
     38                t.editor = tinymce.EditorManager.activeEditor;
     39                t.params = t.editor.windowManager.params;
     40                t.features = t.editor.windowManager.features;
     41                t.dom = tinymce.dom;
     42
     43                // Setup on init listeners
     44                t.listeners = [];
     45                t.onInit = {
     46                        add : function(f, s) {
     47                                t.listeners.push({func : f, scope : s});
     48                        }
     49                };
     50
     51                t.isWindow = !t.getWindowArg('mce_inline');
     52                t.id = t.features.id;
     53                t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window);
     54        },
     55
     56        /**
     57         * Returns the reference to the parent window that opened the dialog.
     58         *
     59         * @method getWin
     60         * @return {Window} Reference to the parent window that opened the dialog.
     61         */
     62        getWin : function() {
     63                return window;
     64        },
     65
     66        /**
     67         * Returns a window argument/parameter by name.
     68         *
     69         * @method getWindowArg
     70         * @param {String} n Name of the window argument to retrive.
     71         * @param {String} dv Optional default value to return.
     72         * @return {String} Argument value or default value if it wasn't found.
     73         */
     74        getWindowArg : function(n, dv) {
     75                var v = this.params[n];
     76
     77                return tinymce.is(v) ? v : dv;
     78        },
     79
     80        /**
     81         * Returns a editor parameter/config option value.
     82         *
     83         * @method getParam
     84         * @param {String} n Name of the editor config option to retrive.
     85         * @param {String} dv Optional default value to return.
     86         * @return {String} Parameter value or default value if it wasn't found.
     87         */
     88        getParam : function(n, dv) {
     89                return this.editor.getParam(n, dv);
     90        },
     91
     92        /**
     93         * Returns a language item by key.
     94         *
     95         * @method getLang
     96         * @param {String} n Language item like mydialog.something.
     97         * @param {String} dv Optional default value to return.
     98         * @return {String} Language value for the item like "my string" or the default value if it wasn't found.
     99         */
     100        getLang : function(n, dv) {
     101                return this.editor.getLang(n, dv);
     102        },
     103
     104        /**
     105         * Executed a command on editor that opened the dialog/popup.
     106         *
     107         * @method execCommand
     108         * @param {String} cmd Command to execute.
     109         * @param {Boolean} ui Optional boolean value if the UI for the command should be presented or not.
     110         * @param {Object} val Optional value to pass with the comman like an URL.
     111         * @param {Object} a Optional arguments object.
     112         */
     113        execCommand : function(cmd, ui, val, a) {
     114                a = a || {};
     115                a.skip_focus = 1;
     116
     117                this.restoreSelection();
     118                return this.editor.execCommand(cmd, ui, val, a);
     119        },
     120
     121        /**
     122         * Resizes the dialog to the inner size of the window. This is needed since various browsers
     123         * have different border sizes on windows.
     124         *
     125         * @method resizeToInnerSize
     126         */
     127        resizeToInnerSize : function() {
     128                var t = this;
     129
     130                // Detach it to workaround a Chrome specific bug
     131                // https://sourceforge.net/tracker/?func=detail&atid=635682&aid=2926339&group_id=103281
     132                setTimeout(function() {
     133                        var vp = t.dom.getViewPort(window);
     134
     135                        t.editor.windowManager.resizeBy(
     136                                t.getWindowArg('mce_width') - vp.w,
     137                                t.getWindowArg('mce_height') - vp.h,
     138                                t.id || window
     139                        );
     140                }, 0);
     141        },
     142
     143        /**
     144         * Will executed the specified string when the page has been loaded. This function
     145         * was added for compatibility with the 2.x branch.
     146         *
     147         * @method executeOnLoad
     148         * @param {String} s String to evalutate on init.
     149         */
     150        executeOnLoad : function(s) {
     151                this.onInit.add(function() {
     152                        eval(s);
     153                });
     154        },
     155
     156        /**
     157         * Stores the current editor selection for later restoration. This can be useful since some browsers
     158         * looses it's selection if a control element is selected/focused inside the dialogs.
     159         *
     160         * @method storeSelection
     161         */
     162        storeSelection : function() {
     163                this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark(1);
     164        },
     165
     166        /**
     167         * Restores any stored selection. This can be useful since some browsers
     168         * looses it's selection if a control element is selected/focused inside the dialogs.
     169         *
     170         * @method restoreSelection
     171         */
     172        restoreSelection : function() {
     173                var t = tinyMCEPopup;
     174
     175                if (!t.isWindow && tinymce.isIE)
     176                        t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);
     177        },
     178
     179        /**
     180         * Loads a specific dialog language pack. If you pass in plugin_url as a arugment
     181         * when you open the window it will load the <plugin url>/langs/<code>_dlg.js lang pack file.
     182         *
     183         * @method requireLangPack
     184         */
     185        requireLangPack : function() {
     186                var t = this, u = t.getWindowArg('plugin_url') || t.getWindowArg('theme_url');
     187
     188                if (u && t.editor.settings.language && t.features.translate_i18n !== false) {
     189                        u += '/langs/' + t.editor.settings.language + '_dlg.js';
     190
     191                        if (!tinymce.ScriptLoader.isDone(u)) {
     192                                document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"></script>');
     193                                tinymce.ScriptLoader.markDone(u);
     194                        }
     195                }
     196        },
     197
     198        /**
     199         * Executes a color picker on the specified element id. When the user
     200         * then selects a color it will be set as the value of the specified element.
     201         *
     202         * @method pickColor
     203         * @param {DOMEvent} e DOM event object.
     204         * @param {string} element_id Element id to be filled with the color value from the picker.
     205         */
     206        pickColor : function(e, element_id) {
     207                this.execCommand('mceColorPicker', true, {
     208                        color : document.getElementById(element_id).value,
     209                        func : function(c) {
     210                                document.getElementById(element_id).value = c;
     211
     212                                try {
     213                                        document.getElementById(element_id).onchange();
     214                                } catch (ex) {
     215                                        // Try fire event, ignore errors
     216                                }
     217                        }
     218                });
     219        },
     220
     221        /**
     222         * Opens a filebrowser/imagebrowser this will set the output value from
     223         * the browser as a value on the specified element.
     224         *
     225         * @method openBrowser
     226         * @param {string} element_id Id of the element to set value in.
     227         * @param {string} type Type of browser to open image/file/flash.
     228         * @param {string} option Option name to get the file_broswer_callback function name from.
     229         */
     230        openBrowser : function(element_id, type, option) {
     231                tinyMCEPopup.restoreSelection();
     232                this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window);
     233        },
     234
     235        /**
     236         * Creates a confirm dialog. Please don't use the blocking behavior of this
     237         * native version use the callback method instead then it can be extended.
     238         *
     239         * @method confirm
     240         * @param {String} t Title for the new confirm dialog.
     241         * @param {function} cb Callback function to be executed after the user has selected ok or cancel.
     242         * @param {Object} s Optional scope to execute the callback in.
     243         */
     244        confirm : function(t, cb, s) {
     245                this.editor.windowManager.confirm(t, cb, s, window);
     246        },
     247
     248        /**
     249         * Creates a alert dialog. Please don't use the blocking behavior of this
     250         * native version use the callback method instead then it can be extended.
     251         *
     252         * @method alert
     253         * @param {String} t Title for the new alert dialog.
     254         * @param {function} cb Callback function to be executed after the user has selected ok.
     255         * @param {Object} s Optional scope to execute the callback in.
     256         */
     257        alert : function(tx, cb, s) {
     258                this.editor.windowManager.alert(tx, cb, s, window);
     259        },
     260
     261        /**
     262         * Closes the current window.
     263         *
     264         * @method close
     265         */
     266        close : function() {
     267                var t = this;
     268
     269                // To avoid domain relaxing issue in Opera
     270                function close() {
     271                        t.editor.windowManager.close(window);
     272                        t.editor = null;
     273                };
     274
     275                if (tinymce.isOpera)
     276                        t.getWin().setTimeout(close, 0);
     277                else
     278                        close();
     279        },
     280
     281        // Internal functions   
     282
     283        _restoreSelection : function() {
     284                var e = window.event.srcElement;
     285
     286                if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button'))
     287                        tinyMCEPopup.restoreSelection();
     288        },
     289
     290/*      _restoreSelection : function() {
     291                var e = window.event.srcElement;
     292
     293                // If user focus a non text input or textarea
     294                if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text')
     295                        tinyMCEPopup.restoreSelection();
     296        },*/
     297
     298        _onDOMLoaded : function() {
     299                var t = tinyMCEPopup, ti = document.title, bm, h, nv;
     300
     301                if (t.domLoaded)
     302                        return;
     303
     304                t.domLoaded = 1;
     305
     306                tinyMCEPopup.init();
     307
     308                // Translate page
     309                if (t.features.translate_i18n !== false) {
     310                        h = document.body.innerHTML;
     311
     312                        // Replace a=x with a="x" in IE
     313                        if (tinymce.isIE)
     314                                h = h.replace(/ (value|title|alt)=([^"][^\s>]+)/gi, ' $1="$2"')
     315
     316                        document.dir = t.editor.getParam('directionality','');
     317
     318                        if ((nv = t.editor.translate(h)) && nv != h)
     319                                document.body.innerHTML = nv;
     320
     321                        if ((nv = t.editor.translate(ti)) && nv != ti)
     322                                document.title = ti = nv;
     323                }
     324
     325                document.body.style.display = '';
     326
     327                // Restore selection in IE when focus is placed on a non textarea or input element of the type text
     328                if (tinymce.isIE) {
     329                        document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection);
     330
     331                        // Add base target element for it since it would fail with modal dialogs
     332                        t.dom.add(t.dom.select('head')[0], 'base', {target : '_self'});
     333                }
     334
     335                t.restoreSelection();
     336
     337                // Set inline title
     338                if (!t.isWindow)
     339                        t.editor.windowManager.setTitle(window, ti);
     340                else
     341                        window.focus();
     342
     343                if (!tinymce.isIE && !t.isWindow) {
     344                        tinymce.dom.Event._add(document, 'focus', function() {
     345                                t.editor.windowManager.focus(t.id);
     346                        });
     347                }
     348
     349                // Patch for accessibility
     350                tinymce.each(t.dom.select('select'), function(e) {
     351                        e.onkeydown = tinyMCEPopup._accessHandler;
     352                });
     353
     354                // Call onInit
     355                // Init must be called before focus so the selection won't get lost by the focus call
     356                tinymce.each(t.listeners, function(o) {
     357                        o.func.call(o.scope, t.editor);
     358                });
     359
     360                // Move focus to window
     361                if (t.getWindowArg('mce_auto_focus', true)) {
     362                        window.focus();
     363
     364                        // Focus element with mceFocus class
     365                        tinymce.each(document.forms, function(f) {
     366                                tinymce.each(f.elements, function(e) {
     367                                        if (t.dom.hasClass(e, 'mceFocus') && !e.disabled) {
     368                                                e.focus();
     369                                                return false; // Break loop
     370                                        }
     371                                });
     372                        });
     373                }
     374
     375                document.onkeyup = tinyMCEPopup._closeWinKeyHandler;
     376        },
     377
     378        _accessHandler : function(e) {
     379                e = e || window.event;
     380
     381                if (e.keyCode == 13 || e.keyCode == 32) {
     382                        e = e.target || e.srcElement;
     383
     384                        if (e.onchange)
     385                                e.onchange();
     386
     387                        return tinymce.dom.Event.cancel(e);
     388                }
     389        },
     390
     391        _closeWinKeyHandler : function(e) {
     392                e = e || window.event;
     393
     394                if (e.keyCode == 27)
     395                        tinyMCEPopup.close();
     396        },
     397
     398        _wait : function() {
     399                // Use IE method
     400                if (document.attachEvent) {
     401                        document.attachEvent("onreadystatechange", function() {
     402                                if (document.readyState === "complete") {
     403                                        document.detachEvent("onreadystatechange", arguments.callee);
     404                                        tinyMCEPopup._onDOMLoaded();
     405                                }
     406                        });
     407
     408                        if (document.documentElement.doScroll && window == window.top) {
     409                                (function() {
     410                                        if (tinyMCEPopup.domLoaded)
     411                                                return;
     412
     413                                        try {
     414                                                // If IE is used, use the trick by Diego Perini
     415                                                // http://javascript.nwbox.com/IEContentLoaded/
     416                                                document.documentElement.doScroll("left");
     417                                        } catch (ex) {
     418                                                setTimeout(arguments.callee, 0);
     419                                                return;
     420                                        }
     421
     422                                        tinyMCEPopup._onDOMLoaded();
     423                                })();
     424                        }
     425
     426                        document.attachEvent('onload', tinyMCEPopup._onDOMLoaded);
     427                } else if (document.addEventListener) {
     428                        window.addEventListener('DOMContentLoaded', tinyMCEPopup._onDOMLoaded, false);
     429                        window.addEventListener('load', tinyMCEPopup._onDOMLoaded, false);
     430                }
     431        }
     432};
  • wp-includes/js/tinymce/plugins/wpdialogs/js/popup.js

     
     1var tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=tinymce.dom;b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg("mce_inline");b.id=b.features.id;b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return window},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},0)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write('<script type="text/javascript" src="'+tinymce._addVer(a)+'"><\/script>');tinymce.ScriptLoader.markDone(a)}}},pickColor:function(b,a){this.execCommand("mceColorPicker",true,{color:document.getElementById(a).value,func:function(e){document.getElementById(a).value=e;try{document.getElementById(a).onchange()}catch(d){}}})},openBrowser:function(a,c,b){tinyMCEPopup.restoreSelection();this.editor.execCallback("file_browser_callback",a,document.getElementById(a).value,c,window)},confirm:function(b,a,c){this.editor.windowManager.confirm(b,a,c,window)},alert:function(b,a,c){this.editor.windowManager.alert(b,a,c,window)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);a.editor=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},_restoreSelection:function(){var a=window.event.srcElement;if(a.nodeName=="INPUT"&&(a.type=="submit"||a.type=="button")){tinyMCEPopup.restoreSelection()}},_onDOMLoaded:function(){var b=tinyMCEPopup,d=document.title,e,c,a;if(b.domLoaded){return}b.domLoaded=1;tinyMCEPopup.init();if(b.features.translate_i18n!==false){c=document.body.innerHTML;if(tinymce.isIE){c=c.replace(/ (value|title|alt)=([^"][^\s>]+)/gi,' $1="$2"')}document.dir=b.editor.getParam("directionality","");if((a=b.editor.translate(c))&&a!=c){document.body.innerHTML=a}if((a=b.editor.translate(d))&&a!=d){document.title=d=a}}document.body.style.display="";if(tinymce.isIE){document.attachEvent("onmouseup",tinyMCEPopup._restoreSelection);b.dom.add(b.dom.select("head")[0],"base",{target:"_self"})}b.restoreSelection();if(!b.isWindow){b.editor.windowManager.setTitle(window,d)}else{window.focus()}if(!tinymce.isIE&&!b.isWindow){tinymce.dom.Event._add(document,"focus",function(){b.editor.windowManager.focus(b.id)})}tinymce.each(b.dom.select("select"),function(f){f.onkeydown=tinyMCEPopup._accessHandler});tinymce.each(b.listeners,function(f){f.func.call(f.scope,b.editor)});if(b.getWindowArg("mce_auto_focus",true)){window.focus();tinymce.each(document.forms,function(g){tinymce.each(g.elements,function(f){if(b.dom.hasClass(f,"mceFocus")&&!f.disabled){f.focus();return false}})})}document.onkeyup=tinyMCEPopup._closeWinKeyHandler},_accessHandler:function(a){a=a||window.event;if(a.keyCode==13||a.keyCode==32){a=a.target||a.srcElement;if(a.onchange){a.onchange()}return tinymce.dom.Event.cancel(a)}},_closeWinKeyHandler:function(a){a=a||window.event;if(a.keyCode==27){tinyMCEPopup.close()}},_wait:function(){if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);tinyMCEPopup._onDOMLoaded()}});if(document.documentElement.doScroll&&window==window.top){(function(){if(tinyMCEPopup.domLoaded){return}try{document.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}tinyMCEPopup._onDOMLoaded()})()}document.attachEvent("onload",tinyMCEPopup._onDOMLoaded)}else{if(document.addEventListener){window.addEventListener("DOMContentLoaded",tinyMCEPopup._onDOMLoaded,false);window.addEventListener("load",tinyMCEPopup._onDOMLoaded,false)}}}};
     2 No newline at end of file
  • wp-includes/js/tinymce/wp-mce-link.php

     
    11<?php
     2// args expects optionally 'pagenum' and 's'
     3function wp_link_query( $args = array() ) {
     4        $pts = get_post_types( array( 'publicly_queryable' => true ), 'objects' );
     5        $pt_names = array_keys( $pts );
    26
    3 require_once '../../../wp-load.php';
    4 include './wp-mce-link-includes.php';
     7        $query = array(
     8                'post_type' => $pt_names,
     9                'suppress_filters' => true,
     10                'update_post_term_cache' => false,
     11                'update_post_meta_cache' => false,
     12                'post_status' => 'publish',
     13                'order' => 'DESC',
     14                'orderby' => 'post_date',
     15                'posts_per_page' => 20,
     16        );
    517
    6 header( 'Content-Type: text/html; charset=' . get_bloginfo( 'charset' ) );
    7 ?>
    8 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    9 <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
    10 <head>
    11 <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_bloginfo('charset'); ?>" />
    12 <title><?php _e( 'Insert/edit link' ); ?></title>
    13 <script type="text/javascript">
    14 //<![CDATA[
    15 var ajaxurl = '<?php echo admin_url( 'admin-ajax.php' ); ?>',
    16         wpLinkL10n = {
    17                 untitled : '<?php _e('Untitled'); ?>',
    18                 noMatchesFound : '<?php _e( 'No matches found.' ); ?>'
    19         };
    20 //]]>
    21 </script>
    22 <script type="text/javascript" src="tiny_mce_popup.js?ver=3223"></script>
    23 <?php
    24 wp_print_scripts( array( 'jquery', 'jquery-ui-widget' ) );
    25 $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '.dev' : '';
    26 $src = "plugins/wplink/js/wplink$suffix.js?ver=20101116b";
    27 ?>
    28 <script type="text/javascript" src="<?php echo $src; ?>"></script>
    29 <?php
    30 wp_admin_css( 'global', true );
    31 wp_admin_css( 'wp-admin', true );
    32 register_admin_color_schemes();
    33 wp_admin_css( 'colors', true );
    34 ?>
    35 <style>
    36 html {
    37         background: #f1f1f1;
     18        $args['pagenum'] = isset( $args['pagenum'] ) ? absint( $args['pagenum'] ) : 1;
     19
     20        if ( isset( $args['s'] ) )
     21                $query['s'] = $args['s'];
     22
     23        $query['offset'] = $args['pagenum'] > 1 ? $query['posts_per_page'] * ( $args['pagenum'] - 1 ) : 0;
     24
     25        // Do main query.
     26        $get_posts = new WP_Query;
     27        $posts = $get_posts->query( $query );
     28        // Check if any posts were found.
     29        if ( ! $get_posts->post_count )
     30                return false;
     31
     32        // Build results.
     33        $results = array();
     34        foreach ( $posts as $post ) {
     35                if ( 'post' == $post->post_type )
     36                        $info = mysql2date( __( 'Y/m/d' ), $post->post_date );
     37                else
     38                        $info = $pts[ $post->post_type ]->labels->singular_name;
     39
     40                $results[] = array(
     41                        'ID' => $post->ID,
     42                        'title' => esc_html( strip_tags($post->post_title) ),
     43                        'permalink' => get_permalink( $post->ID ),
     44                        'info' => $info,
     45                );
     46        }
     47
     48        return $results;
    3849}
    39 a:link, a:visited {
    40         color: #21759b;
     50
     51function wp_link_ajax( $request ) {
     52        // Searches have a title term.
     53        if ( isset( $request['title'] ) )
     54                $args['s'] = stripslashes( $request['title'] );
     55        $args['pagenum'] = ! empty( $request['page'] ) ? absint( $request['page'] ) : 1;
     56
     57        $results = wp_link_query( $args );
     58
     59        if ( ! isset( $results ) )
     60                die( '0' );
     61
     62        echo json_encode( $results );
     63        echo "\n";
    4164}
    42 p.howto {
    43         margin: 3px;
    44 }
    45 #link-options {
    46         padding: 10px 0 14px;
    47         border-bottom: 1px solid #dfdfdf;
    48         margin: 0 6px 14px;
    49 }
    50 label input[type="text"] {
    51         width: 360px;
    52         margin-top: 5px;
    53 }
    54 label span {
    55         display: inline-block;
    56         width: 80px;
    57         text-align: right;
    58         padding-right: 5px;
    59 }
    60 .link-search-wrapper {
    61         margin: 5px 5px 9px;
    62         display: block;
    63         overflow: hidden;
    64 }
    65 .link-search-wrapper span {
    66         float: left;
    67         margin-top: 6px;
    68 }
    69 .link-search-wrapper input[type="text"] {
    70         float: left;
    71         width: 220px;
    72 }
    73 .link-search-wrapper img.waiting {
    74         margin: 8px 1px 0 4px;
    75         float: left;
    76         display: none;
    77 }
    78 #open-in-new-tab {
    79         display: inline-block;
    80         padding: 3px 0 0;
    81         margin: 0 0 0 87px;
    82 }
    83 #open-in-new-tab span {
    84         width: auto;
    85         margin-left: 6px;
    86         font-size: 11px;
    87 }
    88 .query-results {
    89         border: 1px #dfdfdf solid;
    90         margin: 0 5px 5px;
    91         background: #fff;
    92         height: 185px;
    93         overflow: auto;
    94 }
    95 .query-results li {
    96         margin-bottom: 0;
    97         border-bottom: 1px solid #f1f1f1;
    98         color: #555;
    99         padding: 4px 6px;
    100         cursor: pointer;
    101 }
    102 .query-results li:hover {
    103         background: #eaf2fa;
    104         color: #333;
    105 }
    106 .query-results li.unselectable:hover {
    107         background: #fff;
    108         cursor: auto;
    109         color: #555;
    110 }
    111 .query-results li.unselectable {
    112         border-bottom: 1px solid #dfdfdf;
    113 }
    114 .query-results li.selected {
    115         background: #f1f1f1;
    116         color: #333;
    117 }
    118 .query-results li.selected .item-title {
    119         font-weight: bold;
    120 }
    121 .item-info {
    122         text-transform: uppercase;
    123         color: #aaa;
    124         font-size: 11px;
    125         float: right;
    126 }
    127 #search-results {
    128         display: none;
    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 }
    138 .submitbox {
    139         padding: 5px 5px 0;
    140         font-size: 11px;
    141         overflow: auto;
    142         height: 29px;
    143 }
    144 #wp-cancel {
    145         line-height: 25px;
    146         float: left;
    147 }
    148 #wp-update {
    149         line-height: 23px;
    150         float: right;
    151 }
    152 #wp-update a {
    153         display: inline-block;
    154 }
    155 </style>
    156 </head>
    157 <body id="post-body">
     65
     66function wp_link_dialog() {
     67?>
     68<div id="wp-link">
    15869<div id="link-selector">
    15970        <div id="link-options">
    16071                <p class="howto"><?php _e( 'Enter the destination URL:' ); ?></p>
     
    204115        </div>
    205116</div>
    206117<div class="submitbox">
    207         <div id="wp-cancel">
     118        <div id="wp-link-cancel">
    208119                <a class="submitdelete deletion"><?php _e( 'Cancel' ); ?></a>
    209120        </div>
    210         <div id="wp-update">
     121        <div id="wp-link-update">
    211122                <a class="button-primary"><?php _e( 'Update' ); ?></a>
    212123        </div>
    213124</div>
    214 </body>
    215 </html>
    216  No newline at end of file
     125</div>
     126<?php } ?>
     127 No newline at end of file
  • wp-includes/js/tinymce/wp-mce-link-includes.php

     
    1 <?php
    2 // args expects optionally 'pagenum' and 's'
    3 function wp_link_query( $args = array() ) {
    4         $pts = get_post_types( array( 'publicly_queryable' => true ), 'objects' );
    5         $pt_names = array_keys( $pts );
    6 
    7         $query = array(
    8                 'post_type' => $pt_names,
    9                 'suppress_filters' => true,
    10                 'update_post_term_cache' => false,
    11                 'update_post_meta_cache' => false,
    12                 'post_status' => 'publish',
    13                 'order' => 'DESC',
    14                 'orderby' => 'post_date',
    15                 'posts_per_page' => 20,
    16         );
    17 
    18         $args['pagenum'] = isset( $args['pagenum'] ) ? absint( $args['pagenum'] ) : 1;
    19 
    20         if ( isset( $args['s'] ) )
    21                 $query['s'] = $args['s'];
    22 
    23         $query['offset'] = $args['pagenum'] > 1 ? $query['posts_per_page'] * ( $args['pagenum'] - 1 ) : 0;
    24 
    25         // Do main query.
    26         $get_posts = new WP_Query;
    27         $posts = $get_posts->query( $query );
    28         // Check if any posts were found.
    29         if ( ! $get_posts->post_count )
    30                 return false;
    31 
    32         // Build results.
    33         $results = array();
    34         foreach ( $posts as $post ) {
    35                 if ( 'post' == $post->post_type )
    36                         $info = mysql2date( __( 'Y/m/d' ), $post->post_date );
    37                 else
    38                         $info = $pts[ $post->post_type ]->labels->singular_name;
    39 
    40                 $results[] = array(
    41                         'ID' => $post->ID,
    42                         'title' => esc_html( strip_tags($post->post_title) ),
    43                         'permalink' => get_permalink( $post->ID ),
    44                         'info' => $info,
    45                 );
    46         }
    47 
    48         return $results;
    49 }
    50 
    51 function wp_link_ajax( $request ) {
    52         // Searches have a title term.
    53         if ( isset( $request['title'] ) )
    54                 $args['s'] = stripslashes( $request['title'] );
    55         $args['pagenum'] = ! empty( $request['page'] ) ? absint( $request['page'] ) : 1;
    56 
    57         $results = wp_link_query( $args );
    58 
    59         if ( ! isset( $results ) )
    60                 die( '0' );
    61 
    62         echo json_encode( $results );
    63         echo "\n";
    64 }
    65 
    66 ?>
    67  No newline at end of file
  • wp-includes/css/jquery-ui-dialog.dev.css

     
     1/*
     2 * jQuery UI CSS Framework @VERSION
     3 *
     4 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
     5 * Dual licensed under the MIT or GPL Version 2 licenses.
     6 * http://jquery.org/license
     7 *
     8 * http://docs.jquery.com/UI/Theming/API
     9 */
     10
     11/* Layout helpers
     12----------------------------------*/
     13.ui-helper-hidden { display: none; }
     14.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
     15.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
     16.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
     17.ui-helper-clearfix { display: inline-block; }
     18/* required comment for clearfix to work in Opera \*/
     19* html .ui-helper-clearfix { height:1%; }
     20.ui-helper-clearfix { display:block; }
     21/* end clearfix */
     22.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
     23
     24
     25/* Interaction Cues
     26----------------------------------*/
     27.ui-state-disabled { cursor: default !important; }
     28
     29
     30/* Icons
     31----------------------------------*/
     32
     33/* states and images */
     34.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
     35
     36
     37/* Misc visuals
     38----------------------------------*/
     39
     40/* Overlays */
     41.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
     42
     43/*
     44 * jQuery UI Resizable
     45 *
     46 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
     47 * Dual licensed under the MIT or GPL Version 2 licenses.
     48 * http://jquery.org/license
     49 *
     50 * http://docs.jquery.com/UI/Resizable#theming
     51 */
     52.ui-resizable { position: relative;}
     53.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
     54.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
     55.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
     56.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
     57.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
     58.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
     59.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
     60.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
     61.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
     62.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
     63
     64/*
     65 * jQuery UI Dialog
     66 *
     67 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
     68 * Dual licensed under the MIT or GPL Version 2 licenses.
     69 * http://jquery.org/license
     70 *
     71 * http://docs.jquery.com/UI/Dialog#theming
     72 */
     73.ui-dialog { position: absolute; width: 300px; overflow: hidden; }
     74.ui-dialog .ui-dialog-titlebar { position: relative; }
     75.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
     76.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: 0; background: none; overflow: auto; zoom: 1; }
     77.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
     78.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
     79.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
     80.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
     81.ui-draggable .ui-dialog-titlebar { cursor: move; }
     82
     83
     84
     85/* WP jQuery Dialog Theme */
     86.ui-dialog {
     87        background: #f1f1f1;
     88        border: 1px solid #999;
     89        -moz-box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
     90        -webkit-box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
     91        box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
     92}
     93.ui-dialog-title {
     94        display: block;
     95        text-align: center;
     96        padding: 1px 0 2px;
     97}
     98.ui-dialog-titlebar {
     99        padding: 0 1em;
     100        background-color: #444;
     101        font-weight: bold;
     102        font-size: 11px;
     103        color: #e5e5e5;
     104}
     105.ui-dialog {
     106        -moz-border-radius-topleft: 4px;
     107        -webkit-border-top-left-radius: 4px;
     108        -khtml-border-top-left-radius: 4px;
     109        border-top-left-radius: 4px;
     110        -moz-border-radius-topright: 4px;
     111        -webkit-border-top-right-radius: 4px;
     112        -khtml-border-top-right-radius: 4px;
     113        border-top-right-radius: 4px;
     114}
     115.ui-dialog-titlebar {
     116        -moz-border-radius-topleft: 3px;
     117        -webkit-border-top-left-radius: 3px;
     118        -khtml-border-top-left-radius: 3px;
     119        border-top-left-radius: 3px;
     120        -moz-border-radius-topright: 3px;
     121        -webkit-border-top-right-radius: 3px;
     122        -khtml-border-top-right-radius: 3px;
     123        border-top-right-radius: 3px;
     124}
     125
     126.ui-dialog .ui-dialog-titlebar-close {
     127        position: absolute;
     128        width: 29px;
     129        height: 16px;
     130        top: 2px;
     131        right: 6px;
     132        background: url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;
     133        padding: 0;
     134}
     135.ui-dialog .ui-dialog-titlebar-close:hover,
     136.ui-dialog .ui-dialog-titlebar-close:focus {
     137        background-position: -87px -32px;
     138}
     139.ui-widget-overlay {
     140        background-color: #000;
     141        opacity: 0.6;
     142}
     143 No newline at end of file
  • wp-includes/css/jquery-ui-dialog.css

     
     1.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute;left:-99999999px;}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-dialog{position:absolute;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{position:relative;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:0;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-dialog{background:#f1f1f1;border:1px solid #999;-moz-box-shadow:0 0 16px rgba(0,0,0,0.3);-webkit-box-shadow:0 0 16px rgba(0,0,0,0.3);box-shadow:0 0 16px rgba(0,0,0,0.3);}.ui-dialog-title{display:block;text-align:center;padding:1px 0 2px;}.ui-dialog-titlebar{padding:0 1em;background-color:#444;font-weight:bold;font-size:11px;color:#e5e5e5;}.ui-dialog{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-dialog-titlebar{-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;width:29px;height:16px;top:2px;right:6px;background:url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;padding:0;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{background-position:-87px -32px;}.ui-widget-overlay{background-color:#000;opacity:.6;}
     2 No newline at end of file
  • wp-includes/script-loader.php

     
    268268                'url' => __( 'URL:' ),
    269269                'noShortlink' => __( 'No shortlink available for this page.' ),
    270270        ) );
     271       
     272        $scripts->add( 'wplink', "/wp-includes/js/tinymce/plugins/wplink/js/wplink$suffix.js", array('jquery'), '20101117' );
     273        $scripts->localize( 'wplink', 'wpLinkL10n', array(
     274                'untitled' => __('Untitled'),
     275                'noMatchesFound' => __('No matches found.'),
     276        ) );
     277       
     278        $scripts->add( 'wpdialogsPopup', "/wp-includes/js/tinymce/plugins/wpdialogs/js/popup$suffix.js", false, '20101117' );
    271279
    272280        if ( is_admin() ) {
    273281                $scripts->add( 'ajaxcat', "/wp-admin/js/cat$suffix.js", array( 'wp-lists' ), '20090102' );
     
    504512
    505513        // Admin bar
    506514        $styles->add( 'admin-bar', "/wp-includes/css/admin-bar$suffix.css", array(), '20101117' );
     515       
     516        // WP jQuery UI Dialog
     517        $styles->add( 'wp-jquery-ui-dialog', "/wp-includes/css/jquery-ui-dialog$suffix.css", array(), '20101117' );
     518        // WPLink TinyMCE plugin
     519        $styles->add( 'wplink', "/wp-includes/js/tinymce/plugins/wplink/css/wplink$suffix.css", array(), '20101117' );
    507520
    508521        foreach ( $rtl_styles as $rtl_style ) {
    509522                $styles->add_data( $rtl_style, 'rtl', true );
  • wp-admin/admin-ajax.php

     
    10741074        exit;
    10751075        break;
    10761076case 'wp-link-ajax':
    1077         require_once ABSPATH . WPINC . '/js/tinymce/wp-mce-link-includes.php';
     1077        require_once ABSPATH . WPINC . '/js/tinymce/wp-mce-link.php';
    10781078
    10791079        wp_link_ajax( $_POST );
    10801080
  • wp-admin/includes/post.php

     
    13271327        $mce_spellchecker_languages = apply_filters('mce_spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv');
    13281328
    13291329        if ( $teeny ) {
    1330                 $plugins = apply_filters( 'teeny_mce_plugins', array('inlinepopups', 'media', 'fullscreen', 'wordpress', 'wplink') );
     1330                $plugins = apply_filters( 'teeny_mce_plugins', array('inlinepopups', 'media', 'fullscreen', 'wordpress', 'wplink', 'wpdialogs') );
    13311331                $ext_plugins = '';
    13321332        } else {
    1333                 $plugins = array( 'inlinepopups', 'spellchecker', 'paste', 'wordpress', 'media', 'fullscreen', 'wpeditimage', 'wpgallery', 'tabfocus', 'wplink' );
     1333                $plugins = array( 'inlinepopups', 'spellchecker', 'paste', 'wordpress', 'media', 'fullscreen', 'wpeditimage', 'wpgallery', 'tabfocus', 'wplink', 'wpdialogs' );
    13341334
    13351335                /*
    13361336                The following filter takes an associative array of external plugins for TinyMCE in the form 'plugin_name' => 'url'.
     
    14111411                }
    14121412        }
    14131413
    1414         $plugins = implode($plugins, ',');
    1415 
    14161414        if ( $teeny ) {
    14171415                $mce_buttons = apply_filters( 'teeny_mce_buttons', array('bold, italic, underline, blockquote, separator, strikethrough, bullist, numlist,justifyleft, justifycenter, justifyright, undo, redo, link, unlink, fullscreen') );
    14181416                $mce_buttons = implode($mce_buttons, ',');
     
    14851483                'paste_strip_class_attributes' => 'all',
    14861484                'paste_text_use_dialog' => true,
    14871485                'wpeditimage_disable_captions' => $no_captions,
    1488                 'plugins' => $plugins
     1486                'plugins' => implode($plugins, ',')
    14891487        );
    14901488
    14911489        if ( ! empty( $editor_styles ) && is_array( $editor_styles ) ) {
     
    16081606/* ]]> */
    16091607</script>
    16101608<?php
     1609
     1610        // Load additional inline scripts based on active plugins.
     1611        if ( in_array( 'wpdialogs', $plugins ) ) {
     1612                wp_print_scripts( array('jquery-ui-dialog', 'wpdialogsPopup') );
     1613                wp_print_styles('wp-jquery-ui-dialog');
     1614        }
     1615        if ( in_array( 'wplink', $plugins ) ) {
     1616                require_once ABSPATH . WPINC . "/js/tinymce/wp-mce-link.php";
     1617                add_action('tiny_mce_preload_dialogs', 'wp_link_dialog');
     1618                wp_print_scripts('wplink');
     1619                wp_print_styles('wplink');
     1620        }
    16111621}
     1622function wp_tiny_mce_preload_dialogs() { ?>
     1623        <div id="preloaded-dialogs" style="display:none;">
     1624<?php   do_action('tiny_mce_preload_dialogs'); ?>
     1625        </div>
     1626<?php }
     1627 No newline at end of file
  • wp-admin/admin-header.php

     
    6666
    6767if ( in_array( $pagenow, array('post.php', 'post-new.php') ) ) {
    6868        add_action( 'admin_print_footer_scripts', 'wp_tiny_mce', 25 );
     69        add_action( 'admin_print_footer_scripts', 'wp_tiny_mce_preload_dialogs', 30 );
    6970        wp_enqueue_script('quicktags');
    7071}
    7172