Changeset 2770

Show
Ignore:
Timestamp:
11/11/07 16:12:19 (1 year ago)
Author:
jun66j5
Message:

Fixed a bug when htdocs_location is defined in trac.ini.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tracwysiwygplugin/0.10/tracwysiwyg/htdocs/wysiwyg.js

    r2765 r2770  
    9191    var l = window.location; 
    9292    var css = {}; 
    93     css.trac = TracWysiwyg.tracBasePath + "chrome/common/css/trac.css"; 
    94     css.editor = TracWysiwyg.tracBasePath + "chrome/tracwysiwyg/editor.css"; 
     93    css.trac = TracWysiwyg.tracPaths.htdocs + "css/trac.css"; 
     94    css.editor = TracWysiwyg.tracPaths.base + "chrome/tracwysiwyg/editor.css"; 
    9595    var html = [ 
    9696        '<!DOCTYPE html PUBLIC', 
     
    25982598 
    25992599TracWysiwyg.count = 0; 
    2600 TracWysiwyg.tracBasePath = null; 
    2601  
    2602 TracWysiwyg.getTracBasePath = function() { 
    2603     var links = document.getElementsByTagName("link"); 
    2604     var length = links.length; 
    2605     for (var i = 0; i < length; i++) { 
     2600TracWysiwyg.tracPaths = null; 
     2601 
     2602TracWysiwyg.getTracPaths = function() { 
     2603    var paths = {}; 
     2604 
     2605    var d = document; 
     2606    var head = d.getElementsByTagName("head")[0]; 
     2607    var regexpPath = /^[\w.+-]+:\/\/[^\/:]+(?::\d+)?/; 
     2608    var length, i; 
     2609 
     2610    var scripts = head.getElementsByTagName("script"); 
     2611    length = scripts.length; 
     2612    var wysiwygjs = "/chrome/tracwysiwyg/wysiwyg.js"; 
     2613    for (i = 0; i < length; i++) { 
     2614        var src = scripts[i].src || ""; 
     2615        var index = src.length - wysiwygjs.length; 
     2616        if (src.substring(index) == wysiwygjs) { 
     2617            paths.base = src.substring(0, index).replace(regexpPath, "") + "/"; 
     2618            break; 
     2619        } 
     2620    } 
     2621    if (!paths.base) { 
     2622        return null; 
     2623    } 
     2624 
     2625    var links = head.getElementsByTagName("link"); 
     2626    var traccss = "/css/trac.css"; 
     2627    length = links.length; 
     2628    for (i = 0; i < length; i++) { 
    26062629        var link = links[i]; 
    26072630        var rel = (link.getAttribute("rel") || "").toLowerCase(); 
    26082631        var href = link.getAttribute("href") || ""; 
    2609         if (rel == "stylesheet" && /^(.*)\/chrome\/common\/css\/trac\.css$/.test(href)) { 
    2610             return RegExp.$1.replace(/[\w.+-]+:\/\/[^:]+(?::\d+)?/, "") + "/"; 
    2611         } 
    2612     } 
    2613     return null; 
     2632        var index = href.length - traccss.length; 
     2633        if (rel == "stylesheet" && href.substring(index) == traccss) { 
     2634            paths.htdocs = href.substring(0, index) + "/"; 
     2635            break; 
     2636        } 
     2637    } 
     2638    if (!paths.htdocs) { 
     2639        return null; 
     2640    } 
     2641 
     2642    return paths; 
    26142643}; 
    26152644 
     
    26542683    expires.setTime(expires.getTime() + 365 * 86400 * 1000); 
    26552684    var pieces = [ "tracwysiwyg=" + mode, 
    2656         "path=" + TracWysiwyg.tracBasePath
     2685        "path=" + TracWysiwyg.tracPaths.base
    26572686        "expires=" + expires.toUTCString() ]; 
    26582687    document.cookie = pieces.join("; "); 
     
    26982727TracWysiwyg.quickSearchURL = function(link) { 
    26992728    if (!/^(?:(?:https?|ftp|mailto|file):|[\/.#])/.test(link)) { 
    2700         link = TracWysiwyg.tracBasePath + "search?q=" + encodeURIComponent(link); 
     2729        link = TracWysiwyg.tracPaths.base + "search?q=" + encodeURIComponent(link); 
    27012730    } 
    27022731    return link; 
     
    27232752        return; 
    27242753    } 
    2725     TracWysiwyg.tracBasePath = TracWysiwyg.getTracBasePath(); 
    2726     if (!TracWysiwyg.tracBasePath) { 
     2754    TracWysiwyg.tracPaths = TracWysiwyg.getTracPaths(); 
     2755    if (!TracWysiwyg.tracPaths) { 
    27272756        return; 
    27282757    } 
  • tracwysiwygplugin/0.11/tracwysiwyg/htdocs/wysiwyg.js

    r2765 r2770  
    9191    var l = window.location; 
    9292    var css = {}; 
    93     css.trac = TracWysiwyg.tracBasePath + "chrome/common/css/trac.css"; 
    94     css.editor = TracWysiwyg.tracBasePath + "chrome/tracwysiwyg/editor.css"; 
     93    css.trac = TracWysiwyg.tracPaths.htdocs + "css/trac.css"; 
     94    css.editor = TracWysiwyg.tracPaths.base + "chrome/tracwysiwyg/editor.css"; 
    9595    var html = [ 
    9696        '<!DOCTYPE html PUBLIC', 
     
    25982598 
    25992599TracWysiwyg.count = 0; 
    2600 TracWysiwyg.tracBasePath = null; 
    2601  
    2602 TracWysiwyg.getTracBasePath = function() { 
    2603     var links = document.getElementsByTagName("link"); 
    2604     var length = links.length; 
    2605     for (var i = 0; i < length; i++) { 
     2600TracWysiwyg.tracPaths = null; 
     2601 
     2602TracWysiwyg.getTracPaths = function() { 
     2603    var paths = {}; 
     2604 
     2605    var d = document; 
     2606    var head = d.getElementsByTagName("head")[0]; 
     2607    var regexpPath = /^[\w.+-]+:\/\/[^\/:]+(?::\d+)?/; 
     2608    var length, i; 
     2609 
     2610    var scripts = head.getElementsByTagName("script"); 
     2611    length = scripts.length; 
     2612    var wysiwygjs = "/chrome/tracwysiwyg/wysiwyg.js"; 
     2613    for (i = 0; i < length; i++) { 
     2614        var src = scripts[i].src || ""; 
     2615        var index = src.length - wysiwygjs.length; 
     2616        if (src.substring(index) == wysiwygjs) { 
     2617            paths.base = src.substring(0, index).replace(regexpPath, "") + "/"; 
     2618            break; 
     2619        } 
     2620    } 
     2621    if (!paths.base) { 
     2622        return null; 
     2623    } 
     2624 
     2625    var links = head.getElementsByTagName("link"); 
     2626    var traccss = "/css/trac.css"; 
     2627    length = links.length; 
     2628    for (i = 0; i < length; i++) { 
    26062629        var link = links[i]; 
    26072630        var rel = (link.getAttribute("rel") || "").toLowerCase(); 
    26082631        var href = link.getAttribute("href") || ""; 
    2609         if (rel == "stylesheet" && /^(.*)\/chrome\/common\/css\/trac\.css$/.test(href)) { 
    2610             return RegExp.$1.replace(/[\w.+-]+:\/\/[^:]+(?::\d+)?/, "") + "/"; 
    2611         } 
    2612     } 
    2613     return null; 
     2632        var index = href.length - traccss.length; 
     2633        if (rel == "stylesheet" && href.substring(index) == traccss) { 
     2634            paths.htdocs = href.substring(0, index) + "/"; 
     2635            break; 
     2636        } 
     2637    } 
     2638    if (!paths.htdocs) { 
     2639        return null; 
     2640    } 
     2641 
     2642    return paths; 
    26142643}; 
    26152644 
     
    26542683    expires.setTime(expires.getTime() + 365 * 86400 * 1000); 
    26552684    var pieces = [ "tracwysiwyg=" + mode, 
    2656         "path=" + TracWysiwyg.tracBasePath
     2685        "path=" + TracWysiwyg.tracPaths.base
    26572686        "expires=" + expires.toUTCString() ]; 
    26582687    document.cookie = pieces.join("; "); 
     
    26982727TracWysiwyg.quickSearchURL = function(link) { 
    26992728    if (!/^(?:(?:https?|ftp|mailto|file):|[\/.#])/.test(link)) { 
    2700         link = TracWysiwyg.tracBasePath + "search?q=" + encodeURIComponent(link); 
     2729        link = TracWysiwyg.tracPaths.base + "search?q=" + encodeURIComponent(link); 
    27012730    } 
    27022731    return link; 
     
    27232752        return; 
    27242753    } 
    2725     TracWysiwyg.tracBasePath = TracWysiwyg.getTracBasePath(); 
    2726     if (!TracWysiwyg.tracBasePath) { 
     2754    TracWysiwyg.tracPaths = TracWysiwyg.getTracPaths(); 
     2755    if (!TracWysiwyg.tracPaths) { 
    27272756        return; 
    27282757    }